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の場合:
# pubspec.yaml
version: 2.0.0+2 # +2の部分がバージョンコード
Androidネイティブの場合:
// android/app/build.gradle
defaultConfig {
versionCode 2 // 前回より大きい数値に変更
versionName "2.0.0"
}
重要
バージョンコードは前回のリリースよりも必ず大きな数値にする必要があります。連番でなくても構いませんが、単調増加である必要があります。
方法2:ドラフトバンドルの削除
バージョンコードを変更したにもかかわらずエラーが続く場合、Play Consoleにドラフトとして保存された古いバージョンが残っている可能性があります。
- Play Consoleにログイン
- リリース管理 → App Bundle エクスプローラーを選択
- 該当するバージョンコードのバンドルを選択
- 削除ボタンをクリック(利用可能な場合)
制限事項
既に公開リリースに含まれているバンドルは削除できません。その場合はバージョンコードを増加させるしかありません。
方法3:リリースの破棄
ドラフトバンドルが削除できない場合は、関連するリリース全体を破棄する必要があります。
- Play Consoleでリリース管理 → プロダクションを選択
- 該当するリリースを選択
- リリースを破棄をクリック
- 再度App Bundleエクスプローラーでバンドルを削除
フレームワーク別対応方法
React Nativeの場合
// android/app/build.gradle
android {
defaultConfig {
versionCode 2
versionName "2.0"
}
}
Expoの場合
// app.json
{
"expo": {
"version": "2.0.0",
"android": {
"versionCode": 2
}
}
}
Unityの場合
- プロジェクト設定を開く
- Player Settings → Android Settings → Identification
- VersionとBundle Version Codeを更新
ベストプラクティス
バージョニング戦略
- メジャーバージョン: 大きな機能追加や破壊的変更(例: 1.x.x → 2.0.0)
- マイナーバージョン: 新機能追加(例: 1.0.x → 1.1.0)
- パッチバージョン: バグ修正(例: 1.0.0 → 1.0.1)
- バージョンコード: 毎回のビルドで必ず増加させる
自動バージョニング
CI/CDパイプラインで自動的にバージョンコードを増加させることをお勧めします:
# Flutterの場合
flutter build appbundle --build-name=2.0.0 --build-number=2
トラブルシューティング
よくある間違い
pubspec.yaml
だけ変更しても、Androidのビルド設定が上書きされていないか確認しましょう。場合によってはandroid/app/build.gradle
やlocal.properties
も確認が必要です。
エラーが続く場合のチェックリスト:
- すべてのバージョン設定場所を確認(pubspec.yaml、build.gradle、local.properties)
- Play Consoleのドラフトをすべてクリーンアップ
- ビルド前に
flutter clean
を実行 - バージョンコードが確実に前回より大きいことを確認
結論
「Version code has already been used」エラーは、バージョンコードの重複によって発生します。確実に解決するには:
- バージョンコードを前回より大きな値に更新
- Play Consoleのドラフトバンドルをクリーンアップ
- フレームワークに応じた適切な設定ファイルを更新
これらの手順に従うことで、問題なくアプリをアップロードできるようになります。