状況
.NET MAUIプロジェクトで、Androidアプリの発行時に設定していたSigning Identifyを紛失してしまい、アプリの更新ができなくなって困ったお話です。
原因は、iOSシミュレーターのデバッグがうまくいかず、この鍵のあるフォルダを消してしまったこと。
よくXamarin関連でトラブったときの対応として、
%LOCALAPPDATA%\Xamarin
このフォルダ全削除ってあるけど、
%LOCALAPPDATA%\Xamarin\Mono for Android
この配下に鍵が入ってるという罠。
でもバックアップしていなかった自分が悪い。。。.NET MAUIの公式にもちゃんと記載が、、、
キーストアとパスワードは Visual Studio ソリューションに保存されません。 そのため、このデータは必ずバックアップしてください。 紛失した場合、同じ署名 ID でアプリに署名できなくなります。
Google Play ディストリビューション用の .NET MAUI Android アプリを公開する - .NET MAUIGoogle Play ディストリビューション用の .NET MAUI Android アプリを公開する方法について説明します。
これは当たり前なのですが、Visual Studioでアプリの発行時に新しいキーストアを作成しても、Google Play ConsoleのApp Bundleの更新はできないのです。
環境
OS: Windows 11 Pro
IDE: Visual Studio Community 2022 Version 17.13.6
対応手順
古い情報だと、Play App Signing未設定でApp Bundleを登録済みの場合、キーストアの更新は不可能で、新しいアプリとして登録し直すしかないとあったのですが、Google Play Console側で[アップロード鍵]の変更で解決できました。
新しいアップロード鍵の作成

上記ページを参考にVisual Studioで[Android キーストア の作成]
Aliasを「vs」で作成した場合、新しいキーストアは下記に保存される。
%LOCALAPPDATA%\Xamarin\Mono for Android\Keystore\vs\vs.keystore
上記ページを参考に、コマンド実行。
拡張子は.jksに変更しなくても問題ありません。
keytool -export -rfc -keystore vs.keystore -alias vs -file vs_certificate.pem
キーストアのバックアップ
%LOCALAPPDATA%\Xamarin\Mono for Android\Keystore\vs\vs.keystore
このファイルを何らかの方法でバックアップしましょう。
アップロード鍵のリセットのリクエスト
- Google Play Consoleにログイン
- 対象のアプリを表示
- 左メニューから[テストとリリース]-[設定]-[アプリの署名]を開く
- [アップロード鍵のリセットのリクエスト]
- アップロード鍵をリセットする理由を選択:
- [アップロード鍵を忘れた]
- [アップロード鍵の証明書から生成された.PEMファイルをアップロードする]
- 上記手順で作成した.PEMファイルをアップロード
- [リクエスト]ボタンを押下
- アップロード鍵をリセットする理由を選択:
- メール「アップロード鍵のリセット リクエストを受け取りました」を受信
- 新しいアップロード鍵が有効になるまで48時間待機(有効になる日時はメール本文に記載あり)
- この間、新しいApp BundleやAPKをアップロードできない

アプリの発行
48時間後に、Visual Studioから発行で正常にアプリを更新できます。
コメント