◉RORK LABEN
●GPT-6.1 SOL — Rork のモデルメニューに追加(09-29)。Low/Medium/High を選べ、Pro・Max に含まれます●SONNET 5.5 — UI づくりが得意で、Sonnet 5 より出力が速いモデルが選べます(09-28)●SDK 58 — Beta が 09/15 から。stable の案内はまだなく、Expo Go でのプロジェクト実行は 09/03 からログインが必要です●WIDGET — iOS のウィジェットが本番ビルドだけ真っ黒になる原因を追った報告が出ています●OBSERVE — EAS Observe がネイティブクラッシュも記録します(SDK 57.0.21 以降・10/07)●NEW — 起動広告が、背面から戻った回にしか出ていませんでした。「前面に戻った」合図が、…●GPT-6.1 SOL — Rork のモデルメニューに追加(09-29)。Low/Medium/High を選べ、Pro・Max に含まれます●SONNET 5.5 — UI づくりが得意で、Sonnet 5 より出力が速いモデルが選べます(09-28)●SDK 58 — Beta が 09/15 から。stable の案内はまだなく、Expo Go でのプロジェクト実行は 09/03 からログインが必要です●WIDGET — iOS のウィジェットが本番ビルドだけ真っ黒になる原因を追った報告が出ています●OBSERVE — EAS Observe がネイティブクラッシュも記録します(SDK 57.0.21 以降・10/07)●NEW — 起動広告が、背面から戻った回にしか出ていませんでした。「前面に戻った」合図が、…
記事一覧/アプリ開発
◇ アプリ開発/2026-05-31中級

Rorkアプリを Google Play にアップロードできない署名キーエラーの直し方

Rorkで作ったアプリを Google Play にアップロードすると「間違った鍵で署名されています」と弾かれる——よくある署名キーの不一致エラーについて、原因の見分け方と環境別の具体的な対処手順を整理しました。

troubleshooting26error5fix5Android55Google Play38署名keystore

Rorkで生成したアプリを Google Play Console にアップロードしたとき、「Your Android App Bundle is signed with the wrong key(このAndroid App Bundleは間違った鍵で署名されています)」というエラーで弾かれて、先に進めなくなったことはないでしょうか。ビルドは通っているのに提出だけ失敗するため、原因が掴みづらく、最初の公開でつまずきやすいポイントです。

私自身、2014年から個人開発を続けてきて累計5,000万ダウンロードに届くまでに何本もアプリを出してきましたが、この署名まわりのエラーは新しいビルド環境に移るたびに必ず一度はぶつかります。仕組みを一度理解しておくと、慌てずに切り分けられるようになります。

なぜ「鍵が違う」と言われるのか

Google Play にアプリを出すとき、署名には二種類の鍵が関わります。ここを混同していると、エラーメッセージの意味が読み取れません。

ひとつは アップロード鍵(upload key) です。あなたが手元で AAB(Android App Bundle)に署名するための鍵で、Google Play に「これは確かに私が出したものです」と示すためのものです。

もうひとつは アプリ署名鍵(app signing key) です。実際にユーザーへ配信される APK に Google が付け直す鍵で、Play App Signing が有効な場合は Google 側で安全に保管されます。

「間違った鍵で署名されています」と言われるのは、ほとんどの場合 Google Play に登録済みのアップロード鍵と、今あなたが署名に使った鍵が一致していない ためです。初回登録時の鍵を紛失したり、ビルド環境を変えて新しい鍵で署名してしまったりすると発生します。

まず確認すべきこと

対処に入る前に、今どの鍵で署名されているのかを確かめます。手元の AAB に含まれる証明書の指紋(SHA-256)を取り出して、Google Play Console に登録されている指紋と突き合わせます。

# AAB / APK に含まれる署名証明書を確認する
keytool -printcert -jarfile your-app.aab

出力の SHA256: の行に並ぶ指紋を控えておきます。次に Google Play Console を開き、対象アプリの「テストとリリース」→「アプリの署名」を見ると、アップロード鍵証明書 と アプリ署名鍵証明書 の SHA-256 がそれぞれ表示されています。

ここで手元の指紋が アップロード鍵証明書 の値と一致していれば正常です。一致していなければ、別の鍵で署名している状態であり、これがエラーの直接の原因です。

ケース別の対処

原因は「どんなビルド環境を使っているか」で変わります。Rorkで作ったアプリは EAS(Expo Application Services)でビルドするか、ネイティブ書き出ししてローカルで署名するかのどちらかが多いので、その二つを中心に整理します。

ケース1:EAS Build を使っていて鍵が変わってしまった

EAS Build は初回に署名鍵を自動生成し、Expo 側で保管してくれます。便利な反面、eas credentials を操作したときや別アカウント・別プロジェクトでビルドし直したときに、新しい鍵が作られて指紋がずれることがあります。

まず、EAS が今どの鍵を持っているかを確認します。

# Android の署名認証情報を一覧表示する
eas credentials --platform android

メニューから対象のビルドプロファイル(通常は production)を選ぶと、現在の Keystore とその SHA-256 指紋が表示されます。これが Google Play 側のアップロード鍵証明書と一致していれば、その鍵でビルドし直すだけで解決します。

問題は、過去に Google Play へ登録した鍵を EAS が失っているケースです。この場合は、登録済みのアップロード鍵(.jks / .keystore ファイルとパスワード一式)が手元に残っているなら、それを EAS に読み込ませます。

# 既存の keystore を EAS にアップロードして使わせる
eas credentials --platform android
# → Keystore: Set up a new keystore → 既存ファイルを選択 → パスワードを入力

手元にも鍵が残っていない場合は、後述の「アップロード鍵を紛失した場合」へ進みます。

ケース2:ローカルで署名していて鍵を取り違えた

ネイティブ書き出しして Android Studio やコマンドラインで署名している場合は、署名設定が参照している keystore ファイルが正しいかを確認します。android/gradle.properties や CI の環境変数で、デバッグ用の鍵や別アプリの鍵をうっかり指していることがよくあります。

# android/gradle.properties — リリース署名に使う鍵を明示する
MYAPP_UPLOAD_STORE_FILE=upload-keystore.jks
MYAPP_UPLOAD_KEY_ALIAS=upload
MYAPP_UPLOAD_STORE_PASSWORD=YOUR_STORE_PASSWORD
MYAPP_UPLOAD_KEY_PASSWORD=YOUR_KEY_PASSWORD

指している keystore の指紋は、次のコマンドで確認できます。

# keystore 内の特定エイリアスの指紋を確認する
keytool -list -v -keystore upload-keystore.jks -alias upload

ここで出る SHA-256 が Google Play のアップロード鍵証明書と一致するかを必ず突き合わせてください。複数アプリを並行運用していると、別アプリの keystore を共有してしまう取り違えが起きがちです。私も壁紙系と癒し系のアプリを同時に更新していた時期に、片方の鍵でもう片方を署名しかけたことがあります。アプリごとに keystore とエイリアスを明確に分けておくのが安全です。

ケース3:アップロード鍵を紛失した場合

手元にもビルド環境にもアップロード鍵が残っておらず、復元できないときは、Google にアップロード鍵のリセットを依頼します。これは Play App Signing が有効なアプリでのみ可能で、Google が配信用のアプリ署名鍵を保持しているからこそ取れる手段です。

新しいアップロード鍵を作り、その公開鍵証明書(PEM)をリセット申請に添付します。

# 新しいアップロード鍵を生成する
keytool -genkeypair -v -keystore new-upload-keystore.jks \
  -alias upload -keyalg RSA -keysize 2048 -validity 9125
 
# リセット申請に添付する PEM 証明書を書き出す
keytool -export -rfc -keystore new-upload-keystore.jks \
  -alias upload -file upload_certificate.pem

書き出した upload_certificate.pem を持って、Google Play Console の「アプリの署名」ページから アップロード鍵のリセットをリクエスト します。承認には通常1〜2営業日かかります。承認後は、この新しい鍵で署名したビルドが受け付けられるようになります。

注意したいのは、Play App Signing を使わずに自分でアプリ署名鍵を管理していて、その鍵を失った場合です。このときは同じパッケージ名でのアップデート公開ができなくなり、リセットも効きません。だからこそ、最初に Play App Signing を有効にしておくことを私は強くおすすめします。

同じ失敗を繰り返さないために

このエラーは一度起こすと復旧に手間がかかるので、予防が何より効きます。私が複数アプリを長く運用してきて落ち着いた習慣は、次のようなものです。

アップロード鍵の .jks ファイルとパスワードは、ビルド環境とは別の場所——パスワードマネージャーや暗号化したバックアップ——に必ず保管します。ビルドマシンを買い替えたときに鍵だけ消える、というのが一番多い事故です。

Play App Signing は新規アプリでは原則として有効にします。これで配信用の鍵は Google が保管してくれるため、最悪アップロード鍵を失ってもリセットで復帰できます。

そして、アプリごとに keystore とエイリアス名を分け、一覧をメモに残しておきます。指紋の突き合わせは keytool -printcert -jarfile 一発でできるので、提出前に一度確認する癖をつけるだけで、提出してから弾かれる無駄なやり直しが減ります。

次に新しいビルド環境へ移すときは、まず手元の AAB の指紋を取り、Google Play のアップロード鍵証明書と一致することを確認してから提出してみてください。それだけで、この署名エラーのほとんどは未然に防げます。

シェア

お読みいただきありがとうございます

Rork Lab は広告なしで運営しており、サーバー費用などの運営コストはメンバーシップのご支援で賄っています。実装コード・ベンチマーク・本番設計パターンなど、実務でお役立ていただける記事を毎日更新しています。もし読んでよかったと感じていただけましたら、ぜひご覧ください。

  • ✦コピー&ペーストで使える実装コード付き
  • ✦毎日新しい上級ガイドを追加
  • ✦¥580/月 または ¥1,480 の永久アクセス
メンバーシップを見る →

もしこの記事がお役に立ちましたら、チップ(¥150)で応援いただけると大変励みになります。広告なしでの運営を続けるため、皆さまのご支援が大きな力になっています。

関連記事

◇ アプリ開発2026-09-07
アプリから外部の AI にユーザーの文章を送るとき、Play の「データの安全性」に何を書くか
外部の AI にユーザーの入力を渡すアプリで、Play のデータ安全性フォームの収集・共有・一時処理をどう区分するか。送信を一箇所に集める実装と、順序を誤ると消し漏れるマスキングの実測を添えて整理します。
◇ アプリ開発2026-08-18
Rork のプロジェクトで targetSdkVersion 36 を通すまでに直した3か所
app.json に targetSdkVersion 36 と書いてあるのに、ビルドが読んでいた値は 35 でした。実効値を報告するスクリプトと、引き上げ・更新停止・延長申請の三択の分け方を残します。
◇ アプリ開発2026-10-15
EAS Build だけ「No matching variant」で落ちるとき、まず疑う手元の android/build
手元の Gradle は通るのに、EAS Build の Android だけが「No matching variant of project」で止まる。GitHub の報告を読み比べ、Windows で生成した autolinking のキャッシュが Linux のビルド機へ渡っていた経路と、ビルドを投げる前に確かめる診断スクリプトをまとめました。