ある時、会社から新しいスペックの高いPCを買ってもらい、これでFlutterアプリのビルドが早くなるぞ!とGoogle PlayにAPKをアップロードすると、、
アップロード証明書で署名されていない APK をアップロードしました。使用する証明書は同じである必要があります。
というエラーが出るようになっていました。。
いろいろ調べてみると、Androidのアプリ署名鍵は一度登録すると更新できなくなるようでした。。
次からAndroidのアプリ署名鍵はバックアップを取っておこうと心から思ったそんな記事です。
アプリ署名鍵を紛失・消してしまったら
鍵を新しく新しく作り直してアップロードしても、同様のエラーが出ます。 Google Play Consoleでの復元もできないようです。。
ではどうするかというと、 「Googleサポートにアプリ署名鍵の再登録申請を出す」になります。
アプリ署名鍵の再登録申請手順
- Google Play Consoleを開く
https://play.google.com/console/u/0/developers - 対象アプリのダッシュボードにいく
- サイドバーから「設定/アプリの署名」をクリック
- アプリ署名ページに「鍵のアップグレードをリクエスト」ボタンがあるのでクリック
- 「各リリースの署名に使用しているアップロード鍵を紛失したため > サポートにお問い合わせ」をクリック
-
お問い合わせフォームから自分のアプリ情報とアップロード鍵を紛失した旨を記載して送信
例)アプリ署名鍵(.jks)を紛失してしまいました。 お手数ですが、アプリ署名鍵の再登録の方法をご教示いただけますでしょうか。
あとは、Googleからの連絡を待ちます。(僕の場合は2日後に送られてきました)
Googleからのメールの依頼作業手順
おそらく、以下のようなメールが送られてくると思います。
お手数をお掛けしますが、下記の手順に従って新しい物をご作成いただきますようお願いいたします。
1.Android Studio ヘルプセンター記事「キーとキーストアを生成する」の手順に沿って、新しい鍵を生成。新しい鍵は、以前の鍵とは異なるものである必要があります。または、次のコマンドラインを使用して新しい鍵を生成することもできます。
keytool -genkeypair -alias upload -keyalg RSA -keysize 2048 -validity 9125 -keystore keystore.jks
この鍵は、25 年間有効な 2048 ビットの RSA 鍵である必要があります。
2.その鍵の証明書を PEM 形式でエクスポート:
コマンド入力の際に以下の例をご参照ください。
署名鍵(jskファイル)のAlias(署名鍵生成の際、Certificatite 情報として設定したもの)
:PEMtest
jksファイルのパス
:/Users/tester/Desktop/Key/PEMtest
エクスポートする PEM ファイル名
:upload_certificate.pem
の場合、入力いただくコマンドは以下となります。
keytool -export -rfc -alias PEMtest -file upload_certificate.pem -keystore /Users/tester/Desktop/Key/PEMtest
3.エクスポートされた PEM ファイルを添付して、このメールに返信。エクスポートされた PEM ファイルの格納フォルダーが分からない場合は Finder(Windowsの場合は Search)より PEM ファイル名を検索してください。
3にて PEM ファイルを送信いただいた後、こちらで再登録を行い、完了後メールをお送りいたします。
そちらのメールに新しいキーストアが有効となる日時を記載いたしますので、その日時を経過しましたら、今回作成いただいた新しいキーストアで APK に署名してコンソールにアップロードするようにしてください。
他にご不明な点などございましたらお知らせください。
何卒宜しくお願いいたします。
Google Play Developer Support
以上の手順に従って「PEMファイル」を作成していきます。
-
以前のキーとは異なるキーを以下のコマンドで生成します。
zsh$ keytool -genkeypair -alias [好きなAlias名] -keyalg RSA -keysize 2048 -validity 9125 -keystore keystore.jks
-
生成したキーの証明書をPEM形式にてエクスポートします
zsh$ keytool -export -rfc -alias [好きなAlias名] -file upload_certificate.pem -keystore keystore.jks
-
upload_certificate.pem
が生成されているはずなので、指示通りGoogleのメールに添付して返信します。zsh$ ls upload_certificate.pem keystore.jks
送信した証明書にて再登録が完了したら、完了メールが届くので、keystore.jksにてGoogle Playにアプリをアップロードができるようになります。