Android App Bundle が誤った鍵で署名されています。のエラーに対処
Expoを使っている場合の対応策です
考え中
はじめに
eas build の途中で generate new fingerprint にうっかり yes を選んでしまい、
新しい署名キー(アップロードキー)を作成してしまいました。
その結果、Google Play Console で AAB が受け付けられなくなりました。
原因は「Expo 側で持っているアップロードキー」と「Play Console が登録しているアップロードキー」が
一致していないことです。
この場合は、ローカルで新しいアップロードキーを作り直し、Expo と Play Console の両方に適用すれば復旧できます。
以下、実際にやった手順をまとめます。

解決策
少し工程が多いですが、順を追って解説します。
私は、以下の作業をプロジェクトのルートで行いました。
1. 新規に JKS を作成する
ローカルでアップロードキー用の JKS を作ります。
keytool -genkeypair -v \
-storetype JKS \
-keystore upload-key.jks \
-keyalg RSA -keysize 2048 -validity 10000 \
-alias upload
作成時に聞かれるパスワードは後で使うので控えておきます。
2. PEM を作成する
Play Console の「アップロードキーのリセット申請」に必要なので、証明書(PEM)を出力します。
keytool -export -rfc \
-keystore upload-key.jks \
-alias upload \
-file upload_certificate.pem
3. credentials.json を作成する
EAS にアップロードキーを認識させるため、credentials.json を用意します。
credentials.json
{
"android": {
"keystore": {
"keystorePath": "upload-key.jks",
"keystorePassword": "JKSのパスワード",
"keyAlias": "upload",
"keyPassword": "キーのパスワード(JKSのパスワードと同じものでOK)"
}
}
}
eas.jsonにはbuild時のcredentialsSourceにlocalを参照するように記述します。
{
"cli": {
"version": ">= 16.13.3",
"appVersionSource": "remote"
},
"build": {
"development": {
"developmentClient": true,
"distribution": "internal"
},
"preview": {
"distribution": "internal"
},
"production": {
"autoIncrement": true,
"android": {
"credentialsSource": "local" // <-ここ
}
}
},
"submit": {
"production": {}
}
}
このようなディレクトリ構造になりました。
囲んであるのが、今回作成か変更を加えたファイルになります。

4. EAS に新しいキーを登録する
eas build -p android --profile=production
新規ビルドすることで、ローカルのキー情報がExpo側に反映されます。
localのcredentialsSourceを参照しているというような文言がコマンド入力後に表示されると思います(具体的な文言はスクショ撮り忘れました🙏)。
5. Play Console でアップロードキーのリセットを申請
Play Console の
「アプリの完全性 > Play アプリ署名の設定 > アップロード鍵の証明書 > アップロード鍵のリセットのリクエスト から
さきほど生成したupload_certificate.pem を使って申請します。

待つ
申請が完了したら、もう少しだけ待ってねという通知が来ると思うので、新しいキーが有効になるまで待ちます。 有効になったら、新規AABを再提出しましょう!

おわりに
「誤った鍵で署名されています」系のエラーは、アップロードキーの不一致が原因で起きることが多いです。
新しいキーを作成して、Expo と Play Console の両方を同じ鍵に揃えれば解決できます。
ご質問や追加のエラーがあればコメントやメールで教えていただけるとうれしいです。
お時間があるときに他の記事やプロジェクトも覗いていただけるとうれしいです ☺️