アプリのビルド番号でひっかかったのでメモ。こんなルール知らんかった。
ビルド番号の
左側(versionName)の制約
- Android:表示用の“名前”。基本は自由な文字列(慣例的に
major.minor.patch
)。更新順の判定には使わない(更新可否は右側のversionCode
で判定)。 - iOS:App Store の規約により 1〜3個の整数を “.” で区切った形式(例:
3.0.0
,3.0
) 。
一般公開中のバージョンより大きい値にする必要あり(同じ/小さい場合は新バージョンは提出不可)。
右側(build number / versionCode)の運用
- Android: 常に前回より大きい整数 が必須(リセット不可)。 =>ここで引っ掛かった!
- iOS:同じ左側(同じバージョン名)の中では 前回のビルドより大きい必要あり。
左側を上げたときはリセット可能(例:3.0.0
にしたら1
から再開してOK)。
ただし Flutter では左右を共通運用にしがちなので、混乱回避のため 右側も単調増加で統一することが多い。
例
2.3.4+5 → 3.0.0+6
… ✅(左はメジャーアップ、右は増加)2.3.4+5 → 3.0.0+1
… ❌ Android でNG(右が小さい)- iOSだけ右を1から始めたいなら、Xcode側やCIでiOS専用のビルド番号を設定する等の分離運用が必要(Flutterの
--build-name/--build-number
は両OSに同じ値を流します)。
迷ったら:
- 左:
major.minor.patch
を素直に上げる - 右:常に +1(Android基準)