Flutter构建至真机/IPA时出现PhaseScriptExecution非零退出码错误
解决Flutter真机构建/IPA打包时PhaseScriptExecution错误的实操方案
清理项目缓存与构建产物
执行以下命令彻底清理项目残留:flutter clean rm -rf ios/Pods rm ios/Podfile.lock rm -rf ~/Library/Developer/Xcode/DerivedData cd ios && pod install清理完成后重新尝试构建或打包。
检查Xcode脚本配置
打开iOS项目的Xcode工程,依次进入TARGETS-> 项目Target ->Build Phases:- 检查
[CP] Embed Pods Frameworks和[CP] Copy Pods Resources两个脚本,确认路径无异常、依赖未缺失。 - 若脚本存在异常,可删除这两个Phase,再重新执行
pod install让CocoaPods自动重建。
- 检查
验证签名与证书配置
- 确认Xcode的
Signing & Capabilities中,真机调试/打包的签名证书、Provisioning Profile有效,无过期或不匹配情况。 - 切换到
Release模式时,检查签名配置是否符合打包要求,与Debug模式的配置逻辑一致。
- 确认Xcode的
检查Flutter与Xcode版本兼容性
用flutter doctor检查环境,确保Flutter版本与Xcode版本兼容:- 例如Flutter 3.10+建议搭配Xcode 14.3及以上版本,修复
flutter doctor提示的所有环境问题。
- 例如Flutter 3.10+建议搭配Xcode 14.3及以上版本,修复
修改Podfile配置
在ios/Podfile中添加或调整以下配置:post_install do |installer| installer.pods_project.targets.each do |target| flutter_additional_ios_build_settings(target) # 禁用bitcode(部分第三方库不支持该特性) target.build_configurations.each do |config| config.build_settings['ENABLE_BITCODE'] = 'NO' end end end保存后重新执行
pod install。排查第三方库问题
逐个移除近期新增的第三方依赖,每次移除后重新构建,定位是否是特定插件导致的脚本执行错误——尤其是涉及原生代码的插件,可能在真机/Release模式下存在兼容性问题。
内容的提问来源于stack exchange,提问作者Waleed
相关产品推荐
相关产品推荐

