升级Flutter 3.29.2与Xcode 16.3后构建失败,出现构建号和版本号缺失问题
看起来你这是升级后Xcode和Flutter的配置同步出了问题,尤其是版本号、构建号这类Xcode工程配置和Flutter的配置文件没对齐导致的,我给你梳理几个大概率能解决的步骤:
先确认Flutter侧的版本配置格式:打开项目根目录的
pubspec.yaml,检查version字段是否是x.y.z+b的完整格式(比如1.0.0+1),前面是应用版本号,后面是构建号,两者必须用+分隔。如果格式不对,Xcode构建时会无法读取到正确的版本信息。强制同步Flutter与Xcode工程配置:在终端进入项目根目录,依次执行以下命令清理缓存并重新生成配置:
flutter clean flutter pub get cd ios && pod deintegrate && pod install && cd ..这一步能彻底清除旧的构建缓存和CocoaPods依赖,重新生成和Flutter配置对齐的Xcode工程文件。
检查Xcode工程的版本变量设置:打开
ios/Runner.xcworkspace,选中Runner target的「General」标签页,确认「Version」和「Build」字段是否设置为$(FLUTTER_BUILD_NAME)和$(FLUTTER_BUILD_NUMBER)。如果是手动填写的固定值,改成这两个变量,让Xcode自动读取Flutter的配置。解决Ruby与CocoaPods的版本兼容问题:Xcode 16.3对Ruby版本有特定要求,建议用版本管理工具(比如rbenv或rvm)安装Ruby 3.2.2(这个版本和当前Xcode、最新CocoaPods兼容性最好),然后重新安装CocoaPods:
gem install cocoapods尽量避免直接用Homebrew安装CocoaPods,容易出现路径冲突导致的依赖问题。
针对RevenueCat的适配调整:如果仍存在
purchases_flutter的版本兼容问题,在pubspec.yaml里指定和Flutter 3.29.2适配的版本,比如purchases_flutter: ^6.19.0,之后重新执行flutter pub get和pod install。
要是做完这些还是没解决,建议把构建报错的完整日志贴出来,这样能更精准地定位问题根源~
备注:内容来源于stack exchange,提问作者rawcane

