web-dev-qa-db-ja.com

Google Playアプリの署名を有効にする方法

私は多くの開発者がGoogle I/O 2017で発表された新しいGoogle Play App Signing機能についてもっと学ぼうとしていると思います。

Google Play内のアプリに署名するためにキーストアを保存する機能により、キーストアを安全に保存する手間が省け、ハードウェアとOSの特性に基づいて、システムがすべてのデバイスに提供されるAPKを最適化できます。

このトピックの詳細については、こちらの公式ドキュメントをご覧ください。 https://developer.Android.com/studio/publish/app-signing.html#google-play-app-signing

次の答えで、元のキーストアをアップロードするために必要な手順と、この時点以降にAPKに署名する必要がある新しいアップロードキーストアの作成方法について、もう少し詳しく説明します。

67
MatPag

このガイドはすでにPlayストアにアプリケーションを持っている開発者向けです。あなたが新しいアプリから始めているなら、そのプロセスはずっと簡単で、あなたは からパラグラフ "New apps"のガイドラインに従うことができます

開発者の99%がすでに持っていることの前提条件

  1. Android Studio

  2. JDK 8そしてインストール後、端末コマンドを簡単にするためにユーザースペースに環境変数を設定する必要があります。 Windows x64では、これを追加する必要があります:C:\Program Files\Java\{JDK_VERSION}\binPath環境変数に。 (これを行う方法がわからない場合は、 Windows 10 Path環境変数にフォルダーを追加するための私のガイド を読むことができます)。

ステップ0:Google Play開発者コンソールを開き、リリース管理 - >アプリケーションの署名に進みます。

enter image description here

App Signing TOSを受け入れます。

enter image description here

ステップ1:下の画像と同じボタンをクリックしてPEPKツールをダウンロードする

enter image description here

ステップ2:端末を開いて次のように入力します。

Java -jar PATH_TO_PEPK --keystore = PATH_TO_KEYSTORE - alias = ALIAS_YOU_USE_TO_SIGN_APK --output = PATH_TO_OUTPUT_FILE --encryptionkey = GOOGLE_ENCRYPTION_KEY

伝説:

  • PATH_TO_PEPK=ダウンロードしたpepk.jarへのパスステップ1、Windowsユーザーの場合はC:\Users\YourName\Downloads\pepk.jarのようになります。
  • PATH_TO_KEYSTORE=リリースAPKへの署名に使用するキーストアへのパス。タイプが* .keystoreまたは* .jksのファイル、または拡張子なしのファイルである可能性があります。 C:\Android\mykeystoreC:\Android\mykeystore.keystoreなどのようなものです...
  • ALIAS_YOU_USE_TO_SIGN_APK=リリースAPKの署名に使用するエイリアスの名前。
  • PATH_TO_OUTPUT_FILE=拡張子が.pemの出力ファイルのパス、C:\Android\private_key.pemのようなもの
  • GOOGLE_ENCRYPTION_KEY=この暗号化キーは常に同じである必要があります。あなたはそれをApp Signingページで見つけ、それをコピーして貼り付けることができます。この形式にする必要があります:eb10fe8f7c7c9df715022017b00c6471f8ba8170b13049a11e6c09ffe3056a104a3bbe4ac5a955f4ba4fe93fc8cef27558a3eb9d2a529a2092761fb833b656cd48b9de6a

例:

Java -jar "C:¥Users¥YourName¥Downloads¥pepk.jar" --keystore = "C:¥Android¥mykeystore" --alias = myalias --output = "C:¥Android¥private_key.pem" - encryptionkey = eb10fe8f7c7c9df715022017b00c6471f8ba8170b13049a11e6c09ffe3056a104a3bbe4ac5a955f4ba4fe93fc8cef27558a3eb9d2a529a2092761fb833b6566a9bb

Enterキーを押すと、順番に入力する必要があります。

  1. キーストアのパスワード
  2. エイリアスパスワード

すべて問題なければ、PATH_TO_OUTPUT_FILEフォルダーにprivate_key.pemという名前のファイルがあります。

ステップ3:下の画像と同じボタンをクリックして、private_key.pemファイルをアップロードします。

enter image description here

ステップ4:Android Studioを使用して新しいキーストアファイルを作成します。

あなたはあなたのアプリの次のリリースに署名するために将来的にこの鍵ストアを必要とするでしょう、パスワードを忘れないでください

あなたのAndroidプロジェクトの1つを開きます(ランダムに1つ選択します)。 ビルド - >署名付きAPKの生成に移動し、新規作成を押します。

enter image description here

今、あなたは必須フィールドを埋めるべきです。

キーストアパスは、作成する新しいキーストアを表します。右側の3つのドットアイコンを使用してフォルダと名前を選択し、C:\Android\upload_key.jksを選択します(拡張子.jksが自動的に追加されます)。

注:私は新しいエイリアス名としてuploadを使用しましたが、以前は別のアプリに署名するために別のエイリアスで同じキーストアを使用していた場合は、元のキーストアで使用したのと同じエイリアス名を選択する必要があります。

enter image description here

完了したら[OK]を押すと、新しいupload_key.jksキーストアができます。今すぐAndroid Studioを閉じることができます。

ステップ5:新しく作成したupload_key.jksキーストアからアップロード証明書を抽出する必要があります。端末を開き、次のように入力します。

keytool -export -rfc -keystore UPLOAD_KEYSTORE_PATH -alias UPLOAD_KEYSTORE_ALIAS -file PATH_TO_OUTPUT_FILE

伝説:

  • UPLOAD_KEYSTORE_PATH=作成したばかりのアップロードキーストアのパス。この場合はC:\Android\upload_key.jksでした。
  • UPLOAD_KEYSTORE_ALIAS=アップロードキーストアに関連付けられた新しいエイリアス。この場合はuploadでした。
  • PATH_TO_OUTPUT_FILE=拡張子.pemの出力ファイルへのパス。 C:\Android\upload_key_public_certificate.pemのようなもの。

例:

keytool -export -rfc -keystore "C:\ Android\upload_key.jks" -aliasアップロードファイル "C:\ Android\upload_key_public_certificate.pem"

Enterキーを押すと、キーストアのパスワードを入力する必要があります。

すべてうまくいったら、PATH_TO_OUTPUT_FILEフォルダーにupload_key_public_certificate.pemという名前のファイルがあります。

ステップ6:下の画像と同じボタンをクリックしてupload_key_public_certificate.pemファイルをアップロードする

enter image description here

ステップ7:[App Signing]ページの最後にある登録ボタンをクリックします。

enter image description here

すべての新しいリリースのAPKは、Google Play Developerコンソールにアップロードされる前に、ステップ4で作成されたupload_key.jksキーストアとエイリアスで署名されている必要があります。

その他の資料

Q&A

Q:新しいupload_keyキーストアで署名したAPKをアップロードすると、Google Playで次のようなエラーが表示されます。署名なしのAPKをアップロードしました。署名付きAPKを作成する必要があります。

A:リリースAPKの構築中に、両方の署名(V1とV2)でAPKに署名することを確認してください。詳細はこちら をご覧ください

更新

ステップ4、5、6は、既存のアプリではオプションのアップロードキーを作成することです。

「アップロードキー(既存のアプリではオプション):プログラムへの登録中に生成した新しいキー。プレイコンソールにアップロードする前に、今後すべてのAPKに署名するためにアップロードキーを使用します。 https://support.google.com/googleplay/Android-developer/answer/7384423

143
MatPag

少し時間がかかりますはるかに簡単な解決策があります。

  1. Google Playコンソールで、リリース管理 - >アプリの署名を選択します。
  2. 最初のオプション、[Android Studioで暗号化された秘密キーを生成する]を選択します(またはそのようなものです。もうそのページを表示することはできません)。
  3. Android Studioでは、ビルド - >署名付きバンドル/ APKの生成...からAndroidアプリバンドル(.aapファイル)を生成します。 Androidアプリバンドルオプションを選択し、暗号化キーのエクスポートをチェックすることを忘れないでください(アプリの登録に必要です)Google Playアプリの署名)オプション。キーストアを生成していない場合は、アドホックを1つ生成します。
  4. 今度は「トリッキー」な部分です。 .aapが生成された後、Android Studioは右下隅に.aapファイルが保存されている場所へのパスを含む通知をポップアップします。同じ通知で、展開すると、秘密鍵が保存されたパスへの別のリンクが表示されます(private_key.pepkと呼ばれます)。この通知を見逃しても、心配しないでください。右下のイベントログボタンをクリックしてイベントログウィンドウを開くだけです。側とあなたは同じ情報を見つけるでしょう。その場所を開きます。私はC:\ Users\yourUser\.Androidでした

enter image description here

  1. ブラウザに戻り、APP SIGNING PRIVATE KEYボタンを押して、コンピュータ上の秘密鍵の場所を参照します。

完了しました。

これで、以前に生成したリリースをアップロードすることができます。

14
Marius Tanasoiu

私は以下のことをしなければなりませんでした:

  1. Google Playコンソールでアプリを作成する enter image description here

2.Appリリースに移動 - >生産管理 - >リリース作成

3.Google Playアプリの署名を続けるをクリックします enter image description here

4.「keytool -genkey -v -keystore c:\ path\to\cert.keystore -alias uploadKey -keyalg RSA -keysize 2048-validity 10000」を実行して、アップロード証明書を作成します。

5.生成された証明書(c:\ path\to\cert.keystore)を使用してapkに署名します。

6.署名付きapkをアップロードアプリのリリース - >制作管理 - >リリースの編集

7. apkをアップロードすることで、ステップ4で生成された証明書がApp Signing certificatesに追加され、今後のすべてのビルドのための署名証明書になりました。

4
itfake

パブリックベータ版(prod configで署名)にFabricを使用する場合、使用しないでくださいGoogle Play App Signing。あなたは2つの署名されたapkを構築した後にしなければならないでしょう!

あなたがより多くのプレイストア(サムスン、アマゾン、xiaomi、...)に配布するとき、あなたは再び2つの署名されたapksを作らなければならないでしょう。

そのため、Google Play App Signingには十分注意してください。

元に戻すことはできません:/およびGoogle Playは、プロダクションキーで署名されたAPKを受け入れた後に受け入れられませんでした。 Google Playアプリの署名を有効にした後はアップロードキーのみが受け付けられます...

それは本当にCI配布を複雑にします...

アップグレードに関する次の問題: https://issuetracker.google.com/issues/69285256

4
mtrakal
I face this issue when i am trying to migrate Apk to Android App Bundle means publishing .aab instand of .apk file..

while building .aab file its will ask the location to store key export path.
as below 

enter image description here
enter image description here 2番目の画像には、暗号化されたキーのエクスポートパスがあります。pepkが.aabファイルの生成中に特定のフォルダーに保存する場所。

In Google Play Console once you login with Play Store credential
select your project from left side choose App Signing option Release Management>>App Signing

enter image description here

google App Signing Certificationウィンドウが表示されます。

その後、3つのラジオボタンを選択します**

Android St​​udioラジオボタンからエクスポートされたキーをアップロードします

**、以下のようにAPP SIGNING PRIVATE KEYボタンを展開します

enter image description here

click on the button and choose the .pepk file (We Stored while generating .aab file as above)

Read the all other option and submit.

成功したら、アプリのリリースに戻って.aabファイルを参照し、RollOutを完了することができます...

しゅう

以下をせよ :

"CREATE APPLICATION" having the same name which you want to upload before.
Click create.
After creation of the app now click on the "App releases"
Click on the "MANAGE PRODUCTION"
Click on the "CREATE RELEASE"
Here you see "Google Play App Signing" dialog.
Just click on the "OPT-OUT" button.
It will ask you to confirm it. Just click on the "confirm" button
1
Sterling Diaz