Flutter iOS真机构建失败:PhaseScriptExecution错误求助
解决Flutter iOS真机构建失败的步骤
1. 修复签名配置问题
- 打开Xcode,选中项目根目录(Runner),切换到「Signing & Capabilities」标签页
- 选择你的开发者账号到「Team」栏,未添加账号则先完成账号绑定
- 将默认的Bundle Identifier替换为自定义唯一标识符(如
com.yourcompany.yourappname),避免使用com.example这类通用标识 - 勾选「Automatically manage signing」,让Xcode自动生成并管理签名文件
2. 统一Pod部署目标版本
- 打开项目根目录下的
ios/Podfile文件 - 修改顶部的
platform :ios, 'x.x',使其与Flutter项目的最低iOS支持版本一致(比如项目支持iOS 12.0,就改为platform :ios, '12.0') - 检查Podfile中是否有依赖单独设置了更低的部署版本,如有则统一调整
- 执行命令:
cd ios && arch -x86_64 pod install --repo-update(适配M系列芯片)
3. 处理PhaseScriptExecution错误
- 打开Xcode,进入Runner的「Build Phases」标签页
- 找到「Run Script」阶段,排查脚本中是否存在未初始化的变量
- 针对未初始化变量的警告,在脚本中添加默认值,示例:
if [ -z "$SOME_VAR" ]; then SOME_VAR="default_value"; fi - 若有自定义脚本文件,执行
chmod +x ios/Runner/Scripts/xxx.sh确保脚本拥有执行权限
4. 适配Permission Handler依赖
- 打开
ios/Runner/Info.plist文件,添加Permission Handler所需的权限描述,示例:<key>NSCameraUsageDescription</key> <string>需要访问相机拍摄照片</string> <key>NSPhotoLibraryUsageDescription</key> <string>需要访问相册保存图片</string> - 确认Permission Handler版本与Flutter SDK兼容,若版本不匹配,在
pubspec.yaml中指定兼容版本后执行flutter pub get
5. 清理重建项目
- 执行
flutter clean - 删除ios目录下的
Pods文件夹和Podfile.lock文件 - 重新执行
cd ios && arch -x86_64 pod install - 回到项目根目录,执行
flutter build ios --release验证构建是否正常
内容的提问来源于stack exchange,提问作者Alper Efe Sahin
相关产品推荐
相关产品推荐

