{Lepus}

Flutter

Flutterで1度無効になってしまった自動バージョン管理を再有効化する

投稿日: July 15, 2021

起きている現象

Flutter では pubspec.yaml 上でアプリのバージョンとビルドナンバーを操作する機能があります。 (version: バージョン+ビルドナンバー)

version: 1.0.64+2

しかし当機能の存在を知らず、info.plistapp/build.gradle にてアプリのバージョンを一度でも手動操作してしまった場合、FLutter の自動バージョニング管理下から外れてしまい、Flutter の ios と Android バージョンを一括で指定してくれる機能の恩恵を受けることが出来なくなります。

この記事ではこの一度無効になってしまった Flutter の自動バージョン管理を最有効化する手順を記します。

ios での手順

info.plistCFBundleShortVersionString の値を $(FLUTTER_BUILD_NAME)へ修正します。

	<key>CFBundleShortVersionString</key>
	<string>$(FLUTTER_BUILD_NAME)</string>

同様に CFBundleVersion${CFBundleVersion} に修正します。

	<key>CFBundleVersion</key>
	<string>$(FLUTTER_BUILD_NUMBER)</string>

以上。ビルドし直してみるとバージョンが変わっているはずです。

Android での手順

android/app/build.gradle が下記のようになっているか確認してください。

def flutterRoot = localProperties.getProperty('flutter.sdk')
if (flutterRoot == null) {
    throw new GradleException("Flutter SDK not found. Define location with flutter.sdk in the local.properties file.")
}

def flutterVersionCode = localProperties.getProperty('flutter.versionCode')
if (flutterVersionCode == null) {
    throw new GradleException("versionCode not found. Define flutter.versionCode in the local.properties file.")
}

def flutterVersionName = localProperties.getProperty('flutter.versionName')
if (flutterVersionName == null) {
    throw new GradleException("versionName not found. Define flutter.versionName in the local.properties file.")
}

次に、defaultConfigversionCodeflutterVersionCode.toInteger()に、versionNameflutterVersionName に設定してください。

android {
  ...
  defaultConfig {
    ...
    versionCode flutterVersionCode.toInteger()
    versionName flutterVersionName
  }
}

以上です。

書いた人

profile picture

Kosei Sakaguchi

フロントエンドエンジニア / WEBデザイナー

福岡市を拠点に、フリーランスとしてWEBサイト制作やWEB/モバイルアプリケーション開発を行っています。新しい技術と洋服と猫とが好きです!制作実績はWorksへどうぞ! ご興味を持っていただけましたら、お気軽にお声がけください🔥

{Lepus}

Writer's social medias:

© 2020 Lepus