
Androidアプリアップデートに必要なkeystoreファイルの再発行について
いつもお世話になります、cachicoです。
触れる機会があったり、事前に調べたりした内容をアウトプットしていこうということで
今回はkeystoreの情報をなくしてしまった時の再作成についてふれてみようと思います。
・keysotreファイルとは
アプリの署名情報です。
事の発端はアプリの管理がA社からB社に移った際にkeystoreの情報を貰えなかったところから始まります。
通常keystoreの情報は自身のAndroidStudioでアプリ作成していれば自分で作ることになります。
この情報に従ってGooglePlayConsoleにてアプリ情報を登録していくことになり、以後アップデートの際も基本的に変わることのないものです。
簡単にエクスポートもできるので事前にバックアップを取っておけば済みます
ただし、冒頭でも記載しました通り、移管となれば貰えないケースがあります。
このkeystore情報は制作会社さんなどでは共通のものとして使い回しをしている場合があるので、制作会社さんの情報の場合、渡す分には行かないというケースがあります。
(このことから自社の情報ではなくクライアント情報で作成すべきファイルだということがみて取れますね。これは勉強になりました。)
移管時に貰えないとどうなるのか。
アップデート作業の際に最初のkeystore情報の署名情報に従うことになるので、貰えないので当然、正しくありませんとなります。
そこで再発行手続きをして上書きする必要が出てきます。
今回はその手続きと流れを備忘録として簡単にまとめておきたいと思います。
アプリリニューアルとして新規開発の際にkeystore情報を仮で進めていったのですが
リニューアルの段になってkeystore情報が貰えないということがわかりました。
症状
アプリリニューアルとして新規開発の際にkeystore情報を仮で進めていったのですが
リニューアルの段になってkeystore情報が貰えないということがわかりました。
当然申請するとこうなります。
作成
コマンドでもできるのですがこれはAndroidStudioでやるのが圧倒的に簡単です。(個人的体感)
メニュー>build>Generate Signed Bundle / APKと進みます。
そのまま進みます。
Create new...
はい、この画面で必要な情報を入力すればOKです。
ここではお客様の情報を入れるようにするのが正解だと思います。
最後OKで保存すればkeystoreファイルが完成します。
以降の流れ
新しく作ったkeystoreが正しいことをGooglePlayConsoleに再登録する必要があります。
GooglePlayConsoleで対象アプリから「リリース管理」>「アプリの署名」>【鍵のアップグレードをリクエスト】を行えばOKです。
あとは画面に従って理由などを入力して、最後に新しいpemを登録すればOKです。
pem?
pemの作成
以下のコマンドでkeystoreファイルからpemを作れます。
keytool -export -rfc -alias my-key-alias -file example-release-key.pem -keystore example-release-key.keystore
こちらを登録してください。
あとは対象のAndroidのプロジェクトに作成したkeystoreファイルを読み込ませて、ABBを作成すれば完了です。
Pemとkeystoreのフィンガースプリントが一致していればGooglePlayConsoleでOKになる仕組みのようですね。
keytool -v -list -keystore example-release.keystore
こちらのコマンドでkeystoreファイルの中身が確認できますね。
正直かなり焦りましたがきちんと再発行してやり直すことができてよかったです。
いかがでしょうか。
参考
【Android】keystoreファイルをなくした場合の対処法
https://zenn.dev/nekoniki/articles/d584ebf91f54a0