You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Xcode 13.1归档App时出现Command PhaseScriptExecution非零退出码错误

解决Xcode 13.1归档Flutter App时Command PhaseScriptExecution非零退出码错误

报错核心是**readlink: illegal option -- f**,原因是macOS系统默认的readlink工具不支持GNU版本的-f参数,而CocoaPods生成的Embed Pods Frameworks脚本中使用了该参数,导致脚本执行失败。以下是具体解决方法:

  • 先通过Homebrew安装GNU版本的readlink:
    brew install coreutils
    
  • 找到报错提示中的Shell脚本文件(路径示例:/Users/sereyvongthorn/Library/Developer/Xcode/DerivedData/Runner-corqdinyzjasmidrvlqssijkobia/Build/Intermediates.noindex/ArchiveIntermediates/Runner/IntermediateBuildFilesPath/Runner.build/Release-iphoneos/Runner.build/Script-16A3BD1D6245A374368C41CD.sh)
  • 打开该脚本,将所有的readlink替换为greadlink
  • 重新执行归档操作

方案二:修改CocoaPods脚本模板(一劳永逸)

  • 找到CocoaPods的脚本模板文件,路径一般为:
    /Library/Ruby/Gems/2.6.0/gems/cocoapods-<你的版本号>/lib/cocoapods/targets/script_phases/templates/embed_frameworks_script.sh.erb
    
  • 打开模板文件,找到包含readlink -f的行(类似source="$(readlink -f "${source}")"),替换为macOS兼容的写法,比如用Python实现路径解析:
    source="$(python3 -c "import os; print(os.path.realpath('${source}'))")"
    
  • 在项目的ios目录下执行pod install更新脚本,之后重新归档

方案三:升级CocoaPods到修复版本

部分新版本的CocoaPods已经修复了macOS readlink的兼容问题,执行以下命令升级:

gem install cocoapods
cd ios && pod install

升级完成后重新尝试归档

内容的提问来源于stack exchange,提问作者Sereyvong Thorn

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.22 18:57:40