[解決済み] 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 に署名するために必要となる新しいアップロード鍵ストアを作成する方法について、もう少し詳しく説明したいと思います。
どのように解決するのですか?
先に進む前に、この Android Developers ビデオを見て、App Signing enrollment の選択の意味を理解してください。 https://youtu.be/odv_1fxt9BI
このガイドは、Play ストアにすでにアプリケーションを持っている開発者向けです。新しいアプリで始める場合は、プロセスがはるかに簡単で、次の段落のガイドラインに従うことができます。 ここから
99%の開発者がすでに持っている前提条件 :
-
アンドロイドスタジオ
-
JDK 8 で、インストール後、ターミナルコマンドを簡略化するために、ユーザースペースに環境変数を設定する必要があります。Windows x64では、次のように追加する必要があります。
C:\Program Files\Java\{JDK_VERSION}\bin
をPath
環境変数に追加します。(この方法がわからない場合は、私のガイドの にフォルダーを追加し、Windows 10 のPath
環境変数 ).
ステップ0 : Google Play 開発者向けコンソールを開き、以下のページにアクセスします。 リリース管理 -> App Signing .
App Signing 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
= でダウンロードした pepk.jar へのパス。
ステップ1
のようなものです。
C:\Users\YourName\Downloads\pepk.jar
Windows ユーザーの場合。 -
パス_to_keystore
= リリースAPKに署名するために使用するキーストアへのパス。.keystoreまたは*.jksのファイル、あるいは拡張子なしのファイルである。以下のようなものです。
C:\Android\mykeystore
またはC:\Android\mykeystore.keystore
などなど... - alias_you_use_to_sign_apk = リリースAPKに署名するために使用するエイリアスの名前です。
-
パス_to_output_file
= 拡張子が .pem の出力ファイルのパスで、以下のようなものです。
C:\Android\private_key.pem
-
google_encryption_key
= この暗号化キーは常に同じである必要があります。App Signingのページにありますので、コピー&ペーストしてください。この形式である必要があります。
eb10fe8f7c7c9df715022017b00c6471f8ba8170b13049a11e6c09ffe3056a104a3bbe4ac5a955f4ba4fe93fc8cef27558a3eb9d2a529a2092761fb833b656cd48b9de6a
例
java -jar "C:\UsersYourNameDownloads
Enterキーを押すと、順番に提供する必要があります。
- キーストアのパスワード
- エイリアスパスワード
すべてがうまくいった場合、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 -ファイル PATH_TO_OUTPUT_FILE
レジェンドです。
-
アップロード_キーストア_パス
= 先ほど作成したアップロードキーストアのパスです。この場合は
C:\Android\upload_key.jks
. -
アップロード_キーストア_エイリアス
= アップロード鍵ストアに関連付けられた新しいエイリアスです。この例では
upload
. -
パス_to_output_file
= 拡張子が.pemの出力ファイルへのパス。以下のようなもの。
C:\Android\upload_key_public_certificate.pem
.
例です。
keytool -export -rfc -keystore "C:\Androidupload_key.jks" -alias upload -file "C:\Androidupload_key_public_certificate.pem".XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX。
Enterを押すと、キーストアのパスワードを入力する必要があります。
すべてがうまくいった場合、PATH_TO_OUTPUT_FILEフォルダーに、次のような名前のファイルが作成されます。
upload_key_public_certificate.pem
.
ステップ6
: をアップロードします。
upload_key_public_certificate.pem
ファイルをアップロードします。
ステップ7 : クリック 登録する ボタンをクリックしてください。
これで、すべての新しいリリースの APK は、署名に
upload_key.jks
で作成されたキーストアとエイリアスに署名しなければなりません。
ステップ 4
を、Google Play Developerコンソールでアップロードする前に作成します。
その他のリソース
Q&A
Q: 新しいupload_key keystoreで署名したAPKをアップロードすると、Google Playで次のようなエラーが表示されます。 あなたは署名されていないAPKをアップロードしました。署名されたAPKを作成する必要があります。 .
A: リリース用APKを構築する際に、両方の署名(V1、V2)で署名するよう確認してください。読む ここで をご覧ください。
アップデイト
ステップ4,5,6は、既存アプリのオプションであるアップロードキーを作成するためのものです。
アップロードキー(既存アプリではオプション)。プログラムへの登録時に生成される新しいキーです。アップロード キーは、Play コンソールにアップロードする前に、今後すべての APK に署名するために使用します。 https://support.google.com/googleplay/android-developer/answer/7384423
関連
-
[android studio]com.android.ide.common.process.ProcessException: aaptの実行に失敗しました
-
GIF、Lottie、SVGA
-
Androidプロセス生存のためのソリューション
-
AndroidでListViewを使ってカスタムテーブルを描画する
-
アンドロイドの遅延実行のいくつかの方法
-
アンドロイドにおけるトークンの利用
-
[解決済み] Androidのソフトキーボードをプログラムで閉じる/隠すにはどうすればよいですか?
-
[解決済み】署名付きapkの生成時に':app:lintVitalRelease'エラーが発生する。
-
[解決済み】このGoogle Play APK公開エラーメッセージは何を意味するのでしょうか?
-
[解決済み】apkは前バージョンと同じ証明書で署名する必要があります。
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
adb devices OffLine Solution(オフラインソリューション
-
adb シェルがデバイスのオフラインを求めるプロンプトを表示する
-
Gradle のエラーです。gradle-core.jar (com.android.tools.build:gradle-core:x.x.x) を見つけられませんでした。
-
Android studioのインストールと問題発生、Emulator: PANIC: AVDのシステムパスが見つかりません。
-
指定された子にはすでに親がいます。まず、その子の親に対して removeView() をコールする必要があります。
-
Windowsのadbシェルでデータディレクトリにアクセスするとパーミッションが拒否される
-
Android ProgressBarの色を変更する
-
Android Bluetooth 開発の基本プロセス
-
Android基本アプレット
-
Android--shape--描画のコーナー、グラデーション、パディング、サイズ、ソリッド、ストロークのプロパティを指定する。