Androidアプリの署名

審査のために申請する前に、Android証明書によってアプリのリリースバージョンに署名する必要があります。

署名の要件

Androidは、デジタル証明書(キーストアとも呼ばれる)を利用して、アプリ作成者のIDを暗号方式により検証します。すべてのAndroidアプリは、Androidデバイスでのインストールおよび実行のために、このような証明書によってデジタル署名されている必要があります。

すべての開発者は、アプリを承認のためにOculusに提出する前に、独自の一意のデジタル署名を作成して署名する必要があります。詳しくは、Androidドキュメントの「アプリへの署名」と「apksigner」をご覧ください。

アプリの署名に使用する証明書ファイルは必ず保存してください。アプリのこれ以降のすべてのアップデートに同じ証明書ファイルで署名する必要があります。

現在、Oculusでは3つのAPK署名スキームのうち、v1とv2(両方またはいずれか)を要件としています。v3で追加署名されたアプリも許容されますが、現在のところv3署名は必須ではありません。利用するバージョンは、アプリのターゲットデバイスに基づきます。

ターゲットデバイス署名スキームのバージョン詳細
Quest/Quest 2v2とv1ヘッドトラッキング機能をマニフェストに追加して、v2として署名する必要があります。詳しくは、「Androidアプリの署名」をご覧ください。
Gov1v1のスキームはJAR署名に基づいています。詳しくは、「アプリの署名(Androidドキュメント)」をご覧ください。
GoおよびQuestv1として署名しますが、アプリでヘッドトラッキングを使用する場合は、android:required="false"を使用してマニフェストにマークを付けます。詳しくは、「Androidアプリの署名」および「アプリの署名(Androidドキュメント)」をご覧ください。

署名の検証

apksignerツールを使用して、APKの署名を検証できます。そのためには、次のコマンドを使用します。

$ apksigner verify --verbose ~/path-to-apk/app-name.apk

次のような出力が表示されます。

Verifies
Verified using v1 scheme (JAR signing): true
Verified using v2 scheme (APK Signature Scheme v2): true
Verified using v3 scheme (APK Signature Scheme v3): false
Number of signers: 1

Androidアプリの署名のためのUnityの設定

Unityは、デフォルトで一時デバッグ証明書を使用してAndroidアプリに自動的に署名します。最終リリースビルドをビルドする前に、新規Androidキーストアを作成し、[編集] > [Project Settings (プロジェクト設定)] > [Player (プレイヤー)] > [Publishing Settings (パブリッシング設定)]にある[Use Existing Keystore (既存のキーストアを使用)]オプションを使用して割り当てます。詳しくは、UnityのドキュメントでAndroid Player Settings:Publishing Settingsをご覧ください。

Unrealの署名

GithubのUnreal Engineの最新バージョンは、v2署名をサポートしています。古いバージョンのUnrealを使用してQuestアプリを公開している場合は、マニフェストを編集して正しい署名スキーマを使用するか、アプリに正しく署名するために使用しているUnrealのバージョンに手動でパッチを適用する必要があります。詳しくは、Unrealドキュメントの「プロジェクトリリースの承認方法」をご覧ください。