使用Xcode归档React Native iOS项目时遇PhaseScriptExecution错误求助
React Native iOS归档IPA时Pods Frameworks脚本错误解决方法
错误日志
PhaseScriptExecution [CP]\ Embed\ Pods\ Frameworks /Users/codersmacbook/Library/Developer/Xcode/DerivedData/Kno-eupnigjpqbdtmadvbnjydjuziuaa/Build/Intermediates.noindex/ArchiveIntermediates/Kno/IntermediateBuildFilesPath/Kno.build/Release-iphoneos/Kno.build/Script-410FCBE3682CBCE516718EE6.sh (in target 'Kno' from project 'Kno') cd /Users/codersmacbook/Downloads/app/ios /bin/sh -c /Users/codersmacbook/Library/Developer/Xcode/DerivedData/Kno-eupnigjpqbdtmadvbnjydjuziuaa/Build/Intermediates.noindex/ArchiveIntermediates/Kno/IntermediateBuildFilesPath/Kno.build/Release-iphoneos/Kno.build/Script-410FCBE3682CBCE516718EE6.sh mkdir -p /Users/codersmacbook/Library/Developer/Xcode/DerivedData/Kno-eupnigjpqbdtmadvbnjydjuziuaa/Build/Intermediates.noindex/ArchiveIntermediates/Kno/BuildProductsPath/Release-iphoneos/Kno.app/Frameworks /Users/codersmacbook/Downloads/app/ios/Pods/Target Support Files/Pods-Kno/Pods-Kno-frameworks.sh: line 42: source: unbound variable Command PhaseScriptExecution failed with a nonzero exit code
解决步骤
重新安装Pods
该错误多由Pods自动生成的脚本变量异常导致,先清理并重装Pods:cd ios pod deintegrate pod install重装完成后重新尝试归档操作。
调整Shell脚本的严格模式
打开Xcode,进入项目target的Build Phases面板,找到[CP] Embed Pods Frameworks阶段,双击打开脚本内容:- 找到开头的
set -euo pipefail行,移除其中的u,改为set -eo pipefail; - 或者在脚本最开头添加
set +u,关闭未定义变量的检查机制。
注意:后续执行pod install会覆盖该脚本,若需持久化修改,可在Podfile中添加post_install钩子自动完成调整。
- 找到开头的
清理Xcode构建缓存
清理Derived Data并重启Xcode,避免缓存干扰构建流程:rm -rf ~/Library/Developer/Xcode/DerivedData也可在Xcode内使用快捷键:
Cmd+Shift+K清理项目,Cmd+Option+Shift+K清理构建文件夹。检查Podfile自定义钩子
若Podfile中添加了post_install等钩子修改Pods脚本,检查钩子代码是否存在未初始化的变量,修正后重新执行pod install。
内容的提问来源于stack exchange,提问作者Mian Aamir Shehzad
相关产品推荐
相关产品推荐

