見出し画像

【Flutter】iOSの設定アプリのiOSアプリ設定画面にバージョンが表示されない

はじめに

今回は詰まっている問題について、書いていこうかと思います。解決策がまだわかっていないので、解決策がわかったら追記したいと思います。
iOSの設定アプリにiOSアプリ設定画面を表示させることが出来ます。ここにバージョンを表示したいというのが今回行いたいことになります。

flutter 3.16.X
Xcode 15系

実装

バージョンを表示するために以下の内容を行っています。(参考サイト)※以下のようなイメージで実行

  • iosディレクトリを右クリックして、Open in Xcodeを選択してXcodeを開く

  • Settings.bundleを作成

  • vscodeにてSettings.bundleのRoot.plistに以下のようなバージョンを表示させる項目を追加

		<dict>
			<key>Type</key>
			<string>PSTitleValueSpecifier</string>
			<key>DefaultValue</key>
			<string>1.0.0</string>
			<key>Title</key>
			<string>Version</string>
			<key>Key</key>
			<string>sbVersion</string>
		</dict>
  • Xcodeのプロジェクト設定の Build Phasesから、New Run Script PhaseでRun Script Phaseを作成して以下のコードを貼り付ける

APP_VERSION=$(/usr/libexec/PlistBuddy -c "Print CFBundleShortVersionString" $PRODUCT_SETTINGS_PATH)
/usr/libexec/PlistBuddy -c "Set :PreferenceSpecifiers:0:DefaultValue ${APP_VERSION}" "${BUILT_PRODUCTS_DIR}/${WRAPPER_NAME}/Settings.bundle/Root.plist"
  • flutter build iosを実行(調査した感じこれも必要そう)

問題

info.plistのCFBundleShortVersionStringキーの<string>~</string>がpubspec.yamlのversion: 〜+の~の部分に置き換わる想定でした。(調査済)
置き換わったバージョンをAPP_VERSIONの変数に入れて、その変数を使いバージョンを表示させようとしていました。
ただ、設定アプリのiOSアプリ設定画面のバージョン項目に$(FLUTTER_BUILD_NAME)と表示されていて、pubspec.yamlのversion: 〜+の~の部分に変換されずに表示されています。

試すこと

途中でFlutterやXcodeのバージョンを上げたりしたので、
現状のバージョンで一度プロジェクトを作ってみたりして、どうなるかも試してみようと思います。
※単純にミスややり方が間違っているかもしれないので、そこも確認

おわりに

Flutterは最近出たこと、どんどんアップデートされていることから、サイトの情報が古かったり、日本語の情報が少なかったりしているなと思いました。
Flutterを使用した開発で詰まった点などはこのブログでも発信できたら良いなと思います。

この記事が気に入ったらサポートをしてみませんか?