Skip to content

Google Play Consoleでの「Version code 1 has already been used」エラー解決方法

問題概要

Google Play Consoleにアプリバンドル(AAB)をアップロードする際、「Version code 1 has already been used. Try another version code」というエラーが発生します。これはバージョンコードが重複していることを示すエラーで、Flutterアプリの場合はpubspec.yamlファイルのバージョン番号を変更しても解決しない場合があります。

根本原因

このエラーは、Androidのバージョンコード(versionCode)が重複しているために発生します。Google Play Consoleでは、各リリースが一意のバージョンコードを持つ必要があります。

Androidアプリのバージョン管理には2つの要素があります:

  • バージョン名(versionName): ユーザーに表示されるバージョン番号(例: 1.0.0)
  • バージョンコード(versionCode): 内部的なバージョン識別子(例: 1, 2, 3...)

解決方法

方法1:バージョンコードの増加(推奨)

最も基本的な解決方法は、バージョンコードを増加させることです。

Flutterの場合:

yaml
# pubspec.yaml
version: 2.0.0+2  # +2の部分がバージョンコード

Androidネイティブの場合:

gradle
// android/app/build.gradle
defaultConfig {
    versionCode 2  // 前回より大きい数値に変更
    versionName "2.0.0"
}

重要

バージョンコードは前回のリリースよりも必ず大きな数値にする必要があります。連番でなくても構いませんが、単調増加である必要があります。

方法2:ドラフトバンドルの削除

バージョンコードを変更したにもかかわらずエラーが続く場合、Play Consoleにドラフトとして保存された古いバージョンが残っている可能性があります。

  1. Play Consoleにログイン
  2. リリース管理App Bundle エクスプローラーを選択
  3. 該当するバージョンコードのバンドルを選択
  4. 削除ボタンをクリック(利用可能な場合)

制限事項

既に公開リリースに含まれているバンドルは削除できません。その場合はバージョンコードを増加させるしかありません。

方法3:リリースの破棄

ドラフトバンドルが削除できない場合は、関連するリリース全体を破棄する必要があります。

  1. Play Consoleリリース管理プロダクションを選択
  2. 該当するリリースを選択
  3. リリースを破棄をクリック
  4. 再度App Bundleエクスプローラーでバンドルを削除

フレームワーク別対応方法

React Nativeの場合

gradle
// android/app/build.gradle
android {
    defaultConfig {
        versionCode 2
        versionName "2.0"
    }
}

Expoの場合

json
// app.json
{
  "expo": {
    "version": "2.0.0",
    "android": {
      "versionCode": 2
    }
  }
}

Unityの場合

  1. プロジェクト設定を開く
  2. Player SettingsAndroid SettingsIdentification
  3. VersionBundle Version Codeを更新

ベストプラクティス

バージョニング戦略

  • メジャーバージョン: 大きな機能追加や破壊的変更(例: 1.x.x → 2.0.0)
  • マイナーバージョン: 新機能追加(例: 1.0.x → 1.1.0)
  • パッチバージョン: バグ修正(例: 1.0.0 → 1.0.1)
  • バージョンコード: 毎回のビルドで必ず増加させる

自動バージョニング

CI/CDパイプラインで自動的にバージョンコードを増加させることをお勧めします:

bash
# Flutterの場合
flutter build appbundle --build-name=2.0.0 --build-number=2

トラブルシューティング

よくある間違い

pubspec.yamlだけ変更しても、Androidのビルド設定が上書きされていないか確認しましょう。場合によってはandroid/app/build.gradlelocal.propertiesも確認が必要です。

エラーが続く場合のチェックリスト:

  1. すべてのバージョン設定場所を確認(pubspec.yaml、build.gradle、local.properties)
  2. Play Consoleのドラフトをすべてクリーンアップ
  3. ビルド前にflutter cleanを実行
  4. バージョンコードが確実に前回より大きいことを確認

結論

「Version code has already been used」エラーは、バージョンコードの重複によって発生します。確実に解決するには:

  1. バージョンコードを前回より大きな値に更新
  2. Play Consoleのドラフトバンドルをクリーンアップ
  3. フレームワークに応じた適切な設定ファイルを更新

これらの手順に従うことで、問題なくアプリをアップロードできるようになります。