Xcode集成Firebase后真机运行PhaseScriptExecution非零退出码报错如何解决
报错核心原因
该问题仅在物理设备触发、模拟器运行正常,本质是物理机构建要求所有嵌入的第三方框架必须经过有效签名,而[CP] Embed Pods Frameworks阶段的脚本执行签名/嵌入逻辑时失败,常见触发场景如下:
- Xcode本地构建缓存残留,模拟器与物理机构建产物冲突,导致脚本读取到无效的框架文件
- CocoaPods本地缓存损坏,或Podfile的框架链接配置错误,生成的嵌入脚本逻辑异常
- 项目签名配置冲突,Pods依赖的框架签名规则和主项目签名规则不匹配
- 钥匙串访问权限不足,Xcode无法调用签名证书对Pod框架完成签名
- 手动导入过重复的Firebase相关库,和CocoaPods管理的库产生嵌入冲突
对应解决步骤
- 第一步先清理所有缓存:
按Command + Shift + K清理常规构建产物,再按Command + Option + Shift + K执行深度清理,退出Xcode后进入~/Library/Developer/Xcode/DerivedData目录,删除所有和当前项目相关的文件夹。 - 第二步重置CocoaPods依赖:
进入项目根目录,依次执行以下命令:rm -rf Pods Podfile.lock pod deintegrate pod install - 第三步校验签名配置:
打开.xcworkspace项目文件,进入主项目Target的Signing & Capabilities页面,确认Automatically manage signing已开启,所选Team包含有效的iOS开发证书,且当前连接的物理设备已在该Team的设备列表中。无需手动修改Pods子项目的签名配置,保持默认的Signing Certificate=Apple Development即可。 - 第四步排查Podfile自定义配置:
如果你在Podfile中添加了自定义的post_install脚本修改框架签名、链接规则,或者使用了use_frameworks! :linkage => :static这类特殊配置,可先注释自定义配置后重新执行pod install测试构建。 - 第五步修复钥匙串权限:
如果构建日志中包含codesign相关的权限报错,打开「钥匙串访问」,找到你的iOS开发证书,展开证书查看绑定的私钥,右键选择「获取信息」-「访问控制」,勾选「允许所有应用程序访问此项目」后保存,重启Xcode重新构建。 - 第六步Firebase专属排查:
确认你没有同时通过手动拖入SDK和CocoaPods两种方式引入Firebase相关依赖,删除手动导入的Firebase SDK文件,仅保留CocoaPods管理的版本即可。
内容的提问来源于stack exchange,提问作者Туе Нгуен
相关产品推荐
相关产品推荐

