Flutter アプリで Android(Google Play)と iOS(App Store)のバージョン管理を行う際は、pubspec.yamlに一本化して管理する方法が最もシンプルで安全です。
Flutter では次の 1 行だけで iOS / Android の両方にバージョンを反映できます:
version: 1.0.0+4
左側( 1.0.0 ) → versionName / CFBundleShortVersionString
右側( +4 ) → versionCode / CFBundleVersion
💡 versionName は自由に変更できますが、versionCode は通し番号で「増やすだけ」が原則です。
local.properties は 個々の開発者PCの環境設定ファイルなので、
以下のようなバージョン情報は入れないのがベストです。
sdk.dir=/Users/Username/Library/Android/sdk
flutter.sdk=/Users/Username/Developer/flutter
# ↓これらは削除/未記載にする(Flutterがpubspec.yamlから拾うため不要)
# flutter.buildMode=release
# flutter.versionName=1.0.0
# flutter.versionCode=3
💡 local.properties は Git に含めないのが一般的です(環境依存のため)。
Flutter 標準のテンプレートなら、すでに flutter.versionCode / flutter.versionName を参照するようになっています。
defaultConfig {
applicationId = "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
minSdk = flutter.minSdkVersion
targetSdk = flutter.targetSdkVersion
versionCode = flutter.versionCode // ← Flutterがpubspecから埋める
versionName = flutter.versionName
}
普段のビルドはシンプルに:
flutter build appbundle --release
versionCode と versionName は pubspec.yaml の設定がそのまま使われます。
もし一時的に変えたい場合だけ使用する(非推奨)
flutter build appbundle --release --build-name 1.0.1 --build-number 4
pubspec.yaml の version: 1.0.0+N の +N を +1flutter clean
flutter pub get
flutter build appbundle --release
| 項目 | ベストプラクティス |
|---|---|
| version の管理場所 | pubspec.yaml に一本化 |
| versionCode | Google Play 審査で最重要 → 毎回 +1 |
| local.properties | バージョン管理に使わない(SDK パスのみ) |
| build コマンド | シンプルに flutter build でOK |