Androidアプリの新しい署名方式である「Google Play App Signing」の設定方法のご紹介です。
Google Playに新規にapkファイルをアップロードする前に設定するのは簡単なのですが、既存のアプリ(すでにapkファイルをGoogle Playにアップロードしたアプリ)については、コマンドラインツールを使う必要があるのでちょっと手順がややこしくなっています。
もくじ
「Google Play App Signing」とは
Androidアプリの新しい署名方式。
これまでは、開発者がapkファイルをGoogle Playにアップロードする際に作成した署名を、Google Playからユーザーに配信する段階でも使っていました。
Google Playから配信されたアプリの署名を変更することは出来ませんので、これは、リリース済みのアプリを更新するために必要な署名を開発者が管理することを意味しています。つまり、この署名をなくしてしまったら、アプリを一切更新できなくなるのです。
これを「Google Play App Signing」では、後者部分を別の署名にして、開発者ではなくユーザーが管理するようにしました(Upload KeyをApp Signing Keyから分離し、後者をGoogle先生が管理)。
これによって、最初にapkファイルをアップロードした段階で「App Signing Key」が固定され、Google先生が管理してくれるようになりますから、開発者は「Upload Key」をなくしても、再作成すればアプリの更新を行えるようになり、安全性が高まりました。ただし、一旦「Google Play App Signing」を採用したら、元に戻すことが出来ません。
既存のアプリに「Google Play App Signing」を設定する方法6ステップ
これから新しくapkファイルをGoogle Playにアップロードする場合は、ここをポチッと押してあげればおしまいなのですが、
既存のアプリ(リリースしていなくても署名付きapkファイルを一度でもアップロードしたアプリ)に「Google Play App Signing」を設定するのはちょっとややこしいです。
やることは、既にアップロードした際に使った署名ファイルを暗号化してGoogle Playに「App Signing Key」としてアップロードした上で、アップロード用に署名(Upload Key)を再作成することになります。
1.Google Play Consoleから「アプリの署名」ページを開き、PERKツールをダウンロード
このときに、①ダウンロードしたPEPKツールと、②既に作ったアプリの署名ファイルを同じフォルダに入れておくと、コマンドラインツールを使う時に便利です(動画の解説ではデスクトップに「pepk」フォルダを作って、①と②を入れておきました)。
2.コマンドラインツールを使って、アップロード時に設定した署名ファイルを暗号化
Windowsの場合はMS-DOSかPowerShellで、Macの場合はTerminalを使います。
1.「cd」コマンドを使って、①PEPKツールと②アプリの署名ファイルを入れたフォルダに移動
cd C:\Users\ユーザー名\Desktop\pepk
2.Google先生のページにあるコマンドを打ち込む
java -jar pepk.jar --keystore=【A】 --alias=【B】 --output=【C】 --encryptionkey=eb10fe8f7c7c9df715022017b00c6471f8ba8170b13049a11e6c09ffe3056a104a3bbe4ac5a955f4ba4fe93fc8cef27558a3eb9d2a529a2092761fb833b656cd48b9de6a
【A】:②の署名ファイルのパス(例: C:\Users\ユーザー名\Desktop\pepk\署名ファイル名.jks)
【B】:②の署名ファイルの別名(alias)
【C】:②の署名ファイルを暗号化したファイルの出力先のパス(例:C:\Users\ユーザー名\Desktop\pepk\出力ファイル名.pem)⇒ 拡張子に「pem」をつけること!
3.2で暗号化した署名ファイルをGoogle Playにアップロード
4.Android Studioで新しい署名ファイルを作成(Upload Key)
Build ⇒ Generate Signed APKから、最初に作った署名ファイルと同じ方法で新しい署名ファイルを作ります。
5.コマンドラインツールを使って4で作成した署名ファイル(Upload Key)から証明書ファイルを作成
keytool -export -rfc -keystore 【A】 -alias 【B】 -file 【C】
【A】:4で作った新しい署名ファイル
【B】:4で作った新しい署名ファイルの別名
【C】:このコマンドラインツールで作成する証明書のファイル名(例:upload_certificate.pem)⇒ 拡張子に「pem」をつけること!
6.5で作成した証明書をGoogle Playにアップロード
これで、App Signing Keyは以後Google先生が管理してくれますので、Upload Keyをなくしても、再作成すれば、アプリのアップデートが出来るようになります。
ただし、Upload Keyを再作成するだけではダメで、Google先生に連絡してOKをもらわないといけないそうです。
サポートチームが鍵のリセットのリクエストを受け付けるのは、Play Console アカウントの所有者からのみです。
アカウント所有者はこちらのフォームに必要事項を入力してご連絡ください。その際は、必ず upload_certificate.pem
ファイルを添付してください。
Google で新しいアップロード鍵を登録した後、メールが送信されます。その時点で、上記の手順に沿ってキーストアと API プロバイダの登録を更新できます。
(詳しくは下の動画で解説していますので、よろしければご覧ください)