flutter-version-ja

Flutter アプリのバージョン管理ベストプラクティス

Flutter アプリで Android(Google Play)と iOS(App Store)のバージョン管理を行う際は、pubspec.yamlに一本化して管理する方法が最もシンプルで安全です。

Flutter アプリのバージョン管理ベストプラクティス

1. バージョンは pubspec.yaml で一元管理する

Flutter では次の 1 行だけで iOS / Android の両方にバージョンを反映できます:

version: 1.0.0+4

左側( 1.0.0 ) → versionName / CFBundleShortVersionString

  • ユーザーに表示される文字列

右側( +4 ) → versionCode / CFBundleVersion

  • Google Play で重要
  • 毎回 必ず前回より +1 する必要がある(例:3 → 4 → 5)

💡 versionName は自由に変更できますが、versionCode は通し番号で「増やすだけ」が原則です。

2. local.properties にはバージョンを書かない

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 に含めないのが一般的です(環境依存のため)。

3. build.gradle にもバージョンは書かない

Flutter 標準のテンプレートなら、すでに flutter.versionCode / flutter.versionName を参照するようになっています。

defaultConfig {
    applicationId = "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
    minSdk = flutter.minSdkVersion
    targetSdk = flutter.targetSdkVersion
    versionCode = flutter.versionCode    // ← Flutterがpubspecから埋める
    versionName = flutter.versionName
}

4. ビルド時に build-number を毎回指定する必要はない

普段のビルドはシンプルに:

flutter build appbundle --release

versionCode と versionName は pubspec.yaml の設定がそのまま使われます。

もし一時的に変えたい場合だけ使用する(非推奨)

flutter build appbundle --release --build-name 1.0.1 --build-number 4

5. リリース前のルーチン

  1. pubspec.yamlversion: 1.0.0+N の +N を +1
  2. ビルド
flutter clean
flutter pub get
flutter build appbundle --release
  1. Google Play Console / App Store Connect にアップロード

6. まとめ

項目 ベストプラクティス
version の管理場所 pubspec.yaml に一本化
versionCode Google Play 審査で最重要 → 毎回 +1
local.properties バージョン管理に使わない(SDK パスのみ)
build コマンド シンプルに flutter build でOK

Flutter アプリのバージョン管理ベストプラクティス

関連記事