審査のために申請する前に、Android証明書によってアプリのリリースバージョンに署名する必要があります。
Androidは、デジタル証明書(キーストアとも呼ばれる)を利用して、アプリ作成者のIDを暗号方式により検証します。すべてのAndroidアプリは、Androidデバイスでのインストールおよび実行のために、このような証明書によってデジタル署名されている必要があります。
すべての開発者は、アプリを承認のためにOculusに提出する前に、独自の一意のデジタル署名を作成して署名する必要があります。詳しくは、Androidドキュメントの「アプリへの署名」と「apksigner」をご覧ください。
アプリの署名に使用する証明書ファイルは必ず保存してください。アプリのこれ以降のすべてのアップデートに同じ証明書ファイルで署名する必要があります。
現在、Oculusでは3つのAPK署名スキームのうち、v1とv2(両方またはいずれか)を要件としています。v3で追加署名されたアプリも許容されますが、現在のところv3署名は必須ではありません。利用するバージョンは、アプリのターゲットデバイスに基づきます。
| ターゲットデバイス | 署名スキームのバージョン | 詳細 |
|---|---|---|
| Quest/Quest 2 | v2とv1 | ヘッドトラッキング機能をマニフェストに追加して、v2として署名する必要があります。詳しくは、「Androidアプリの署名」をご覧ください。 |
| Go | v1 | v1のスキームはJAR署名に基づいています。詳しくは、「アプリの署名(Androidドキュメント)」をご覧ください。 |
| GoおよびQuest | v1として署名しますが、アプリでヘッドトラッキングを使用する場合は、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
Unityは、デフォルトで一時デバッグ証明書を使用してAndroidアプリに自動的に署名します。最終リリースビルドをビルドする前に、新規Androidキーストアを作成し、[編集] > [Project Settings (プロジェクト設定)] > [Player (プレイヤー)] > [Publishing Settings (パブリッシング設定)]にある[Use Existing Keystore (既存のキーストアを使用)]オプションを使用して割り当てます。詳しくは、UnityのドキュメントでAndroid Player Settings:Publishing Settingsをご覧ください。
GithubのUnreal Engineの最新バージョンは、v2署名をサポートしています。古いバージョンのUnrealを使用してQuestアプリを公開している場合は、マニフェストを編集して正しい署名スキーマを使用するか、アプリに正しく署名するために使用しているUnrealのバージョンに手動でパッチを適用する必要があります。詳しくは、Unrealドキュメントの「プロジェクトリリースの承認方法」をご覧ください。