I’m incredibly talentedなので投資以外にも通常の仕事に加えて電子書籍の出版、アプリ開発とかも行っているわけですが、久しぶりにアプリのアップデートでもしようかなっと思ってアップデートファイルをアップロードしたところ、Googleから「お前さあ、このアプリの開発者じゃないだろ?!おぉん!!こちとら裏取って喋ってるんですよ…ほら俺の持ってる証明書とお前の持ってるやつ違うやろ!」ということでGoogle Playでアップデートが弾かれまして「あれ?バックアップにkeystore file(キーストアファイル)なんてないから、新しくアップデートキーを作ってビルドしたんだけどダメなの?;;」という普通に考えれば奇妙なことをやらかしまして、これは困ったというわけです。単純に言えば、もうそのアプリはアップデータできないということになります。だってGoogleの持ってる証明書と符合する証明書がないんだもん。
ということで、何か救済処置はないかと困ったときのGoogle先生に聞くと「もうアプリはアップデートできないし削除して新しくアップロードしろ!」という過激派の意見が多くて、そんな…せっかくユーザーが数千人もいるアプリを削除して新しくリリースするなんて絶望しかない、もうダメだ、アプリ開発なんて止めて逃げるんだ…という状況に陥りました。キーストアファイルをきちんとバックアップしてなかった自分が悪いんですけど。
ちなみにAndroidアプリの譲渡や移行そのものはGoogle Play Console上で簡単にできるのですが、もし譲渡されたアプリや譲渡したアプリをアップデートしようと思ったらキーストアファイルが必要です。これがないと譲渡された側がアプリを更新できないという沼にはまります。
ということで、多くの人に役立つかもしれないので、僕の解決方法を残しておこうと思います。なお今回の開発環境はMonacaです(Monacaは仕事の要件で使うことがありましたが個人的には使わなくていいなら使いたくないプラットフォームです。サポートとか経験的に本当に信じられないくらいあれだったので)。
Googleに「すんませんけど、キーストアファイルを無くしてしまって…その、なんていうか、あの、アプリがアップデートできなくってですね…」ということを正直に告白します。Google Play Consoleはちょっとデザインが変わって問い合わせ方法が変わっています。
まずConsole上でアプリを選択し「設定」に進み、2つあるタブの「アプリの署名」に切り替えます。フィンガープリントとか表示されますが、中ほどに「鍵のアップデートをリクエスト」という項目があるので、恥ずかしがらずにクリックします。
するとGoogleから「どうしたんや?」ということを聞かれるので、正直に「各リリースの署名に使用しているアップロード鍵を紛失したため」を選びます。
「サポートにお問い合わせ」を選択すると問い合わせページに移行します。そして次のようにポチポチと選択をしていきます。
ここでMonacaを使っていると間違いなく壁にぶち当たります。それが次のGoogleの問いです。
「.pem形式で添付だと・・・?」
Android Studioを使っていたりすると簡単ですが残念ながら今回はMonacaです。コマンドラインで新しく鍵を作る方法もありますがMonacaはこれを受け付けません。そしてMonacaでは.pemでのエクスポートができないという問題があります。Monacaのエクスポートで吐き出されるキーストアファイルはkeystore.privateというファイルです(拡張子ぐらい、ねぇ、なんかさぁ、という愚痴があります)。
ということで、Monacaが吐き出すkeystore.privateを.pemで生成する必要があるのですが、Googleが示しているコマンドラインだとエラーが出るので、面倒くさがり屋の僕はKeyStore Explorerを使用しました。そんなレアケースの解決方法を覚えるよりも覚えることは沢山ありますから、便利なツールがあるならそれを使えが信条です。
KeyStore Explorerでkeystore.privateを開いてファイルをダブルクリックします。すると下のようなウィンドウが出ますので”PEM”を押しましょう。
“PEM”を押すと以下のように.pemファイルが表示されるので”export”を押して適当な名前を付けて保存します。
このエクスポートした.pemを先ほどのGoogleの問い合わせの際にアップロードし、「アップロード鍵を無くしてしまったので、更新してもらえませんか?」という旨のメッセージを書いて手続きは終了です。
Monacaの吐き出したkeystore.privateとGoogleがKeyStore Explorerで生成した.pemファイルに基づいて更新してくれた鍵とはリンクされていますので、Monacaが吐き出したkeystore.privateはきちんとバックアップしておきましょう。そうしないとまた同じ手続きを踏むことになります(2敗)。
.pemでアップロード鍵の更新を申請すると3時間くらいでGoogleから更新したというメールが届きます。ただすぐ更新されるわけではなく、48時間後に新しいAPKなどを受け付けるので、その間はアップロードとかできませんぜ的な内容のメールでした。
ストアキーファイルを無くしてもアップデートができなくなるというようなことはなく、また既存のアプリを削除して新たにアプリをアップロードする必要もありません。Googleに申請すればアップデート鍵を更新してくれます。
しかし48時間など更新に時間がかかりますし、バックアップを取っていれば不要な作業です。
正しく定期的に、もれなくバックアップ取るように心がけましょう。