1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Flutter:iOSのバージョンがxcodeアーカイブエラーで更新されないときに見直すべきポイント(Xcode & pubspec編)

Last updated at Posted at 2025-04-13

はじめに

Flutterで pubspec.yaml の version を更新しても、Xcodeで前のバージョンが残ってしまい、xcodeでarchive作成すると何度やってもバージョンとビルドがアップデートされない問題に直面した。
chatgptに聞きながら格闘してやっと解決したので、そのままchatgptに書かせて記録を残す。


🎯 発生した問題

  • pubspec.yamlversion: 1.0.3+13 と書いたのに、App Store Connect で「1.0.2のビルドです」と言われる
  • Info.plist$(FLUTTER_BUILD_NAME) として指定済み
  • Xcode 側でも MARKETING_VERSION は 1.0.3 に見える。軒並みbuild settingは何億回も確認した。
  • でもビルドには古い 1.0.2 が使われ続ける

🕵️‍♂️ 原因

Flutterは pubspec.yaml を元に ios/Flutter/Generated.xcconfig を生成する。ここに:

FLUTTER_BUILD_NAME=1.0.2

のように古いバージョンが残っているとInfo.plist に間接的に反映されてしまい、Xcodeでは最新に見えてもアーカイブ結果は旧バージョンになってしまう。

さらに project.pbxprojFLUTTER_BUILD_NAME=1.0.2直書きされているケースもあり、Generated.xcconfig を上書きしても効かないことがある。


🔧 解決法(全部やる)

以下の手順を順番に実行:


✅ 1. ビルドキャッシュを削除

flutter clean

✅ 2. pubspec.yaml のバージョンを確認・更新

version: 1.0.3+13

✅ 3. ios/Runner.xcodeproj/project.pbxproj を手動で確認

FLUTTER_BUILD_NAME=1.0.2 のようなハードコードされた値がある場合、手動で削除 or $(FLUTTER_BUILD_NAME) に修正

- FLUTTER_BUILD_NAME = 1.0.2;
+ FLUTTER_BUILD_NAME = $(FLUTTER_BUILD_NAME);

✅ 4. MacとXcodeを再起動

  • project.pbxproj を書き換えたら、Xcodeのキャッシュが残ることがあるため再起動は必須
  • ターミナルも念のため再起動。

✅ 5. 正しいビルドを実行

flutter pub get
flutter build ios --release --build-name=1.0.3 --build-number=13

✅ 6. Xcodeでアーカイブ

open ios/Runner.xcworkspace

メニューから Product > Archive。Organizerでビルドバージョンが 1.0.3 (13) になっていることを確認。


🧼 補足Tips

  • Info.plist の記述はこのようになっている必要あり:
<key>CFBundleShortVersionString</key>
<string>$(FLUTTER_BUILD_NAME)</string>
<key>CFBundleVersion</key>
<string>$(FLUTTER_BUILD_NUMBER)</string>
  • MARKETING_VERSIONFLUTTER_BUILD_NAME と自動で連動しないため、Xcode GUI側で変えても効かないことがある

✅ まとめ

見落としがちな箇所 要チェック事項
project.pbxproj FLUTTER_BUILD_NAME がハードコードされていないか?
Info.plist バージョンは $(FLUTTER_BUILD_NAME) 指定か?
ビルドキャッシュ flutter clean でクリアしたか?
再起動 Mac・Xcode再起動でキャッシュ解除したか?
flutter build ios --build-name / --build-number を指定したか?

記事執筆

全てChatGPTであることをご承知おきください

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?