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


113

多くの開発者が、Google I / O 2017で発表された新しいGoogle Playアプリ署名機能についてもっと学ぼうとしていると思います。

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

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

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

回答:


189

このガイドは、Playストアにすでにアプリケーションを持っている開発者を対象としています。新しいアプリから始める場合、プロセスははるかに簡単で、ここから「新しいアプリ」の段落のガイドラインに従うことができます

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

  1. Android Studio

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

ステップ0:Google Playデベロッパーコンソールを開き、[リリース管理]-> [アプリの署名]に移動します。

ここに画像の説明を入力してください

アプリ署名TOSを受け入れます。

ここに画像の説明を入力してください

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

ここに画像の説明を入力してください

手順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 = 手順1でダウンロードしたpepk.jarへのパスは、C:\Users\YourName\Downloads\pepk.jarWindowsユーザーの場合のようになります。
  • PATH_TO_KEYSTORE =リリースAPKの署名に使用するキーストアへのパス。* .keystoreまたは* .jksタイプのファイル、または拡張子なしのファイルである可能性があります。以下のようなものC:\Android\mykeystoreか、C:\Android\mykeystore.keystoreなど...
  • ALIAS_YOU_USE_TO_SIGN_APK =リリースAPKの署名に使用するエイリアスの名前。
  • PATH_TO_OUTPUT_FILE = .pem拡張子が付いた出力ファイルのパス。C:\Android\private_key.pem
  • GOOGLE_ENCRYPTION_KEY =この暗号化キーは常に同じである必要があります。アプリの署名ページで見つけて、コピーして貼り付けてください。この形式にする必要があります:eb10fe8f7c7c9df715022017b00c6471f8ba8170b13049a11e6c09ffe3056a104a3bbe4ac5a955f4ba4fe93fc8cef27558a3eb9d2a529a2092761fb833b656cd48b9de6a

例:

java -jar "C:\ Users \ YourName \ Downloads \ pepk.jar" --keystore = "C:\ Android \ mykeystore" --alias = myalias --output = "C:\ Android \ private_key.pem"- encryptionkey = eb10fe8f7c7c9df715022017b00c6471f8ba8170b13049a11e6c09ffe3056a104a3bbe4ac5a955f4ba4fe93fc8cef27558a3eb9d2a529a2092761fb833b656cd48b9de6a

Enterキーを押すと、次の順序で入力する必要があります。

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

すべてがうまくいったら、PATH_TO_OUTPUT_FILEフォルダーにというファイルができますprivate_key.pem

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

ここに画像の説明を入力してください

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

アプリの次のリリースに署名するには、今後このキーストアが必要になります。パスワードを忘れないでください

Androidプロジェクトの1つを開きます(ランダムに1つ選択してください)。[ ビルド] -> [ 署名済みAPKの生成]に移動し、[ 新規作成]を押します

ここに画像の説明を入力してください

次に、必須フィールドに入力します。

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

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

ここに画像の説明を入力してください

完了したら[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 upload -file "C:\ Android \ upload_key_public_certificate.pem"

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

すべてがうまくいったら、PATH_TO_OUTPUT_FILEというフォルダーにと呼ばれるファイルができますupload_key_public_certificate.pem

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

ここに画像の説明を入力してください

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

ここに画像の説明を入力してください

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

その他のリソース:

質疑応答

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

A:リリースAPKのビルド中に、両方の署名(V1とV2)でAPKに署名することを確認します。詳細については、こちらをお読みください。

更新しました

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

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


3
あなたのウォークスルーはとても役に立ちます!彼らはそれを公式ウェブサイトに置くべきですlolあなたの例のパス名には
W 10

3
引用符は、パス内に少なくとも1つのスペースがある場合にのみ必要ですが、これはすべてのコンソールコマンドが機能する方法です。:あなたのパスがある場合は、引用符を使用する必要がありますので、"C:\My Path\MyName"パスがある場合はありませんC:\MyPath\MyName。ありがとうございます:)
MatPag 2017年

1
@layth新しいキーストアを作成するStep 4ことがガイドです:D
MatPag

1
私はそれを行いましたが、新しいキーストアダイアログが表示されたとき、そのキーストアパスとパスワードフィールドは空白だったので、古いキーストアをポイントして古いパスワードを入力しました-現在「keytool -export -rfc -keystore UPLOAD_KEYSTORE_PATH -alias UPLOAD_KEYSTORE_ALIAS-ファイルPATH_TO_OUTPUT_FILE "は、keytoolの意味がわからないという不平を言い続けます。「:\プログラムファイル\のJava \ jdk1.8.0_25 \ binに\ keytool.exeが使用Cを」しかし、仕事しなかったことを、おそらく私は正確に..それをどこに置くかを知らないので、私は追加してみました
NukeouT

9
PEPKツールが見つからなくなったため、Googleが手順を変更したようです。
Andrea Motto 2017年

31

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

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

ここに画像の説明を入力してください

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

できた!

これで、以前に生成したリリースをアップロードできます:)頑張ってください!


1
これが最良でより簡単な答えです
Simon、

時間を大幅に節約し、さらに重要なことに心の平和を
救った

[暗号化されたキーをエクスポートする(アプリを登録するために必要なGoogle Playアプリ署名)]オプションが表示されません。
ジャービス

ポイント5の完全な説明を本当にいただければ幸いです-このボタンは表示されません。どこにありますか。おそらく、最近の更新でレイアウトが変更されたのでしょうか。
androidneil

わかりました。次のアップデートでそれについて知りたいですか?同様に、もう一度.pepkキーが必要であるか、同じキーまたは新しいプライベート.pepkキーを使用してバージョン2に署名する必要がありますplsヘルプ
Sunil Chaudhary

15

Androidアプリケーションパッケージファイル(APK)をAndroid App Bundle(AAB)に移行中に、アプリをPlayストアに公開すると、この問題が発生し、以下のように解決されました...

.aabファイルをビルドするとき、次のようにキーのエクスポートパスを保存する場所の入力を求められます。

ここに画像の説明を入力してください
ここに画像の説明を入力してください 2番目の画像には、.aabファイルの生成中に.pepkが特定のフォルダーに保存する暗号化キーのエクスポートパスの場所が表示されます。

Playストアの認証情報を使用してGoogle Play Consoleにログインしたら、左側からプロジェクトを選択し、アプリ署名オプションを選択します。リリース管理>>アプリ署名 ここに画像の説明を入力してください

Google App Signing認定ウィンドウが表示されます。

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

Android Studioラジオボタンからエクスポートされたキーをアップロードする

**、以下のようにAPP SIGNING PRIVATE KEYボタンが展開されます

ここに画像の説明を入力してください

ボタンをクリックして.pepkファイルを選択します(.aab上記のようにファイルを生成しているときに保存しました)

他のすべてのオプションを読んで送信します。

成功したら、アプリのリリースに戻り、.aabファイルを参照して、RollOutを完了します...

あずきっく


わかりました。次のアップデートでそれについて知りたいですか?同様に、もう一度.pepkキーが必要であるか、同じキーまたは新しいプライベート.pepkキーを使用してバージョン2に署名する必要がありますplsヘルプ
Sunil Chaudhary

私の理解によれば、次回作成する必要はありません。古い.pepkキーを使用できます...
Ambilpura Sunil Kumar

更新に.pepkをどのように使用しますか?アプリのアップロード時にGoogleアプリの署名を使用しましたが、更新をプッシュしようとしています。@ AmbilpuraSunilKumar
nt95

こっちも一緒。プレイストアにabbをアップロードし、.pepkファイルを完全に無視します。それが何に適しているのか、そしてアプリを更新するときに何をすべきかを知るのは素晴らしいことです。
Julian Eggers、

4

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

  1. Google Play Consoleでアプリを作成する ここに画像の説明を入力してください

2. アプリのリリースに移動します->製品の管理->リリースの作成

3.Google Play App Signingで続行をクリックします ここに画像の説明を入力してください

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で生成された証明書がアプリ署名証明書に追加され、今後のすべてのビルドの署名証明書になります。


1
私はこれを正確に行いましたが、Google Playストアからアプリをインストールすると、アプリからのGoogleサインインが機能しません。*しかし*私がリリース管理ページからapkをダウンロードし、それを自分のエミュレーター/デバイスに手動でインストールすると、動作します。私が見逃しているものはありますか?
Raghudevan Shankar 2017

私はどこでも約3時間検索しましたが、あなたはついに私を救いました!
Oliver Dixon

3

(prod configで署名された)パブリックベータリリースにFabricを使用する場合は、Google Playアプリ署名を使用しないでください。2つの署名済みAPKをビルドした後にする必要があります!

より多くのプレイストア(samsung、amazon、xiaomiなど)に配布する場合は、2つの署名済みAPKを再度ビルドする必要があります。

したがって、Google Playアプリ署名には十分注意してください。

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

CIの配布は本当に複雑です...

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


1
大胆な大文字DON'T USEのコメントは危険です。問題と推奨される解決策を詳しく説明できますか?解決策はありませんか?ファブリック用のAPKに2回署名するのは難しいですか?
Gokhan Arik

1
APKに2度署名することはそれほど難しくありませんが、説明したように、同一ではない2つ(またはそれ以上)のAPKをビルドする必要があります(したがって、Playストアに公開されるものとは異なるファイルをファブリックベータでテストします)。ベータテスターでプロダクションビルドをテストするというルーズポイント...別のファイルをテストしています:) 複雑なCI / CDを持っている人にとっては、それを変更する必要があるという警告にすぎません...
mtrakal

2
Google Playは、アプリ署名に登録した後でも、プロダクションキーで署名されたAPKを受け入れるようになりました。
ピエール

2

以下をせよ :

"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

この後、以前と同じようにアプリの購入とサービスの再生をテストできますか?これについて何か経験はありましたか?重いステップを踏むのが好きではないからです。
Siddharth、

1
Google Playアプリの署名を有効にする方法」に対する適切な答えではありません...
Ben Madsen

2
そして、それを行う適切な方法として何を提案しますか?
スターリングディアス
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.