Xcode Cloud自定义脚本突发故障:Node链接与依赖安装失败
Xcode Cloud自定义脚本突发故障修复指南
问题概述
原本正常运行的Xcode Cloud自定义脚本未做任何配置更改,昨日突发故障。
原脚本代码
#!/bin/sh export HOMEBREW_NO_INSTALL_CLEANUP=TRUE brew install cocoapods # 手动安装Node brew install node@16 # 链接到系统路径 brew link node@16 brew install yarn # 安装CocoaPods依赖 yarn pod install # 手动执行RN的sed修复命令 sed -i -e $'s/ && (__IPHONE_OS_VERSION_MIN_REQUIRED < __IPHONE_10_0)//' /Volumes/workspace/repository/ios/Pods/RCT-Folly/folly/portability/Time.h
故障表现
- 安装node@16依赖brotli时,
brew link失败,提示/usr/local/include不可写,无法创建符号链接,后续多个依赖出现同类链接错误 - yarn执行时提示缺少Node环境,确认Node未安装成功
- Podfile报错无法加载
../node_modules/react-native/scripts/react_native_pods,sed命令找不到指定的Time.h文件
临时修复方案
经确认,苹果开发者论坛已有大量同类反馈,此问题为Xcode Cloud平台环境变更导致的权限问题,可通过以下方式调整脚本:
方案1:跳过系统级链接,直接指定Node路径
替换原脚本中brew link node@16为PATH配置:
brew install node@16 # 将node@16的bin目录加入当前会话PATH export PATH="/usr/local/opt/node@16/bin:$PATH"
方案2:强制链接并调整权限
brew install node@16 # 提前创建目录并赋予临时权限 sudo mkdir -p /usr/local/include sudo chmod 777 /usr/local/include brew link node@16 --force
方案3:使用Homebrew的前缀安装避免系统目录写入
export HOMEBREW_NO_INSTALL_CLEANUP=TRUE # 安装到Homebrew前缀目录,无需系统级链接 brew install --prefix node@16 export PATH="/usr/local/opt/node@16/bin:$PATH"
说明
以上方案为临时修复措施,待苹果官方修复Xcode Cloud平台环境后,可恢复原脚本配置。优先尝试方案1,避免修改系统权限带来的潜在风险。
内容的提问来源于stack exchange,提问作者Johhan Santana
相关产品推荐
相关产品推荐

