App Signing by Google Playは2017年から登場しました。 App Signingでは、Googleがアプリの署名キーを管理し、それを使ってAPKに署名して配布します。 アプリをApp Signingに登録することは任意です。 Google Play にアップロードする代わりに、署名とキーの保存を処理することに決めたかもしれません。
今、あなたは考えを変え、署名キーを個人的に行うのではなく、Google に管理させることを希望しています。 または、Android App Bundle を使用してアプリのサイズを小さくし、リリース プロセスを簡素化したいが、そのためには App Signing を使用する必要があります。 既存のアプリを App Signing にオプトインするにはどうすればよいでしょうか。
Opting in app signing by Google Play
App Signing by Google Play に登録する前に、知っておくべきことが 2 つあります。 まず、オプトアウトはできないので、準備ができていることを確認してください。 また、Google Play からアプリ署名キーをダウンロードすることはできないので、将来的に必要になる場合は、安全な場所に保管してください。
アプリを App Signing に登録するには、アプリ署名キーを Google Play にアップロードする必要があります。 Google Play コンソールでアプリを開き、リリース管理 > App Signing に移動します(リリース > 設定 > 新しい Google Play コンソールで App Signing)。 Android Studioから、Javaキーストアから、そして自分のキーから(Javaキーストアを使用していない場合)です。
Export and upload a key from Android Studio
Using the Android Studioは、アプリ署名キーをエクスポートする最も簡単な方法です。 Buildメニューを開き、Build > Generate Signed Bundle / APK…をクリックします。Generate Signed Bundle or APKダイアログで、Android App Bundleを選択し、Nextをクリックします。 Export encrypted key for enrolling published apps in Google Play App Signing]を選択して、エクスポートする場所を設定し、[Next]をクリックします。 Android Studio がバンドルを生成し、指定したディレクトリに private_key.pepk をエクスポートします。
Google Play Console App Signing ページで “Export and upload a key from Android Studio” を選択して Android Studio が生成するキーをアップロードして下さい。
Export and upload a key from a Java Keystore
Javaキーストアを使用してアプリに署名している場合は、Google Play Console App Signingページで「Export and upload a key from a Java keystore」を選択します。 コンソールからPlay Encrypt Private Key(PEPK)ツールをダウンロードし、お好きな場所に保存してください。 また、説明書の暗号化キーをメモしておきます。
PEPKツールは、アプリの署名キーをエクスポートして暗号化することができるJARファイルです。 たとえば、次のものがある場合:
* PEPK tool in /Users/admin/Downloads
* app signing key signing-key.jks that has “release” as the alias located in same folder as the pepk.jar
* encryptionkeyfromtheconsole
Googleプレイコンソールから値を持つ暗号鍵にキーをエクスポートできます encryptedkey.
java -jar /Users/admin/Downloads/pepk.jar – keystore=signing-key.jks – alias=release – output=/Users/admin/Downloads/encryptedkey.pepk – encryptionkey=encryptionkeyfromtheconsole
ターミナルは keystore およびキー パスワードを要求してきます。 入力すると、/Users/admin/Downloads/ ディレクトリに encryptedkey.pepk ファイルが生成されます。 Google Play Console App Signingページで、「Export and upload a key from Java keystore」を選択し、encryptedkey.pepkファイルをアップロードします。
Export and upload a key (not using a Java keystore)
アプリ署名キーがJava keystoreを使って作られなかった場合は、Google Play Console App Signingページの「Export and upload a key (not using a Java keystore) 」オプションを選択してください。 PEPK ツールのソース コードをダウンロードし、コンソールで提供される 16 進エンコードされた公開鍵を使用して秘密鍵をエクスポートできます。
Google Play Console のアプリ署名ページで、[鍵をエクスポートしてアップロードする (Java キーストアを使用しない)] を選択して、エクスポートした鍵をアップロードします。
アップロード鍵を作成する
アップロード鍵とは、Google Play でアプリ バンドルまたは APK を公開する前に署名するのに、使用される鍵のことを指します。 アップロード キーと同じ署名キーを使用することができるので、プロセスは以前と同じです。 しかし、アプリの署名キーが侵害されないように、別のアップロード キーを使用することをお勧めします。
アプリ用のアップロード キーを作成するには、新しい署名キーを作成し、その公開証明書を (PEM 形式で) アップロードする必要があります。 新しい鍵はAndroid Studioで作成することができます。 Build]メニューから[Build > Generate Signed Bundle / APK…]をクリックします。 Generate Signed Bundle or APK]ダイアログで、Android App BundleまたはAPKを選択し、[Next]をクリックします。 キーストアパス入力テキストの下にある[Create new…]ボタンをクリックします。 New Key Store] ダイアログに情報を入力して [OK] をクリックします。
Let’s this new upload key is upload-key.Key Store.Key Store.jks をエイリアスとして使用する場合、次のコマンドを実行することにより、そのキーを upload-cert.pem にエクスポートできます:
keytool -export -rfc -keystore upload-key.jks -alias alias -file upload-cert.pem
ターミナルはキーストア パスワードを尋ねてきます。 うまく入力すると、コマンドはupload-cert.pemファイルを生成します。 あとは、Google Play ConsoleでこのPEMファイルをアップロードすればOKです。 ここで、次のアプリ更新を upload-key.jks アップロード キーで署名する必要があります。
What’s Next?
アプリ署名キーをアップロードしたら(および新しいアップロード キーを作成したら)、[完了]ボタンをクリックして(新しい Google Play Console で保存)変更を保存できます。 アプリのApp Signingが有効になったという通知が表示されます。 これで、次のアップデートを公開する際に Android App Bundle を使用できます。
App Signing ページには、アプリ署名キーとアップロード キーの証明書が、そのキー署名 (MD5, SHA-1, SHA-256) と共に表示されます。これは一部の API で使用する必要があります。