iOS 16.5.1升级后Flutter项目无法在Xcode构建运行求助
iOS 16.5.1升级后Flutter项目运行问题解决方案
针对你遇到的三个核心问题,给出以下具体解决步骤:
一、模拟器报错:Info.plist缺少有效CFBundleVersion
- 打开项目的
ios/Runner/Info.plist文件,确认CFBundleVersion(内部版本号)和CFBundleShortVersionString(显示版本号)都填写了合法值,比如CFBundleVersion填纯数字或数字点分格式(如1或1.0.1),CFBundleShortVersionString填语义化版本(如1.0.0),禁止留空或使用特殊字符。 - 在项目根目录依次执行命令:
之后重新编译运行项目。flutter clean flutter pub get - 检查Flutter版本,运行
flutter upgrade升级到最新稳定版,旧版Flutter可能与iOS 16.5.1存在兼容性问题。
二、真机报错:需选择带配置文件的开发团队(但配置文件有效)
- 打开Xcode的Runner项目,切换到
Signing & Capabilities标签页:先将Team选择为None,等待配置重置后,再重新选择你的开发团队,让Xcode重新生成签名相关文件。 - 进入Xcode的
Preferences -> Accounts,选中你的Apple ID,点击Manage Certificates确认开发证书未过期,再点击Download Manual Profiles拉取最新的配置文件。 - 核对Bundle ID一致性:确保Xcode中Runner项目的Bundle ID,与你Apple开发者后台配置文件对应的Bundle ID完全一致(包括大小写)。
三、Xcode提示Command PhaseScriptExecution failed with a nonzero exit code
- 修复脚本权限:在项目的ios目录下执行命令,给Flutter相关脚本添加可执行权限:
chmod +x Runner/Scripts/flutter_build_runner.sh - 关闭并行编译:打开Xcode的
File -> Workspace Settings,将Build System切换为Legacy Build System;或者在项目的Build Settings中找到Parallel Build选项,设置为No。 - 清理Xcode缓存:删除
~/Library/Developer/Xcode/DerivedData目录下对应项目的文件夹,重启Xcode后重新编译。
针对新旧项目差异的补充建议
新项目模拟器可运行但旧项目不行,大概率是旧项目存在缓存或遗留配置冲突:
- 对旧项目执行
flutter clean后,尝试删除ios目录,再通过flutter create --platforms ios .重新生成ios项目文件(操作前务必备份原有ios目录的自定义配置)。
内容的提问来源于stack exchange,提问作者Nitneuq
相关产品推荐
相关产品推荐

