React Native iOS远程执行xcodebuild打包报错找不到lBoringSSL-GRPC库
问题根源
该报错是SSH终端执行xcodebuild时的环境配置和Xcode GUI环境不一致,导致Cocoapods引入的BoringSSL-GRPC依赖路径没有被构建流程正确识别,手动GUI打包正常说明代码本身和签名配置没有问题,只需要调整终端构建的流程和参数即可。
解决方案
1. 确认执行环境基础配置
- 执行xcodebuild前必须先cd到项目的ios目录下,先运行
ls Pods/ | grep BoringSSL-GRPC确认依赖已经正确安装 - 若返回为空,先执行
pod deintegrate && pod install重新生成完整的Pods依赖
2. 修正xcodebuild命令参数
你当前命令中强制指定了-UseModernBuildSystem=NO,旧构建系统在终端执行时经常出现依赖路径识别错误,优先替换为现代构建系统测试,修改后的命令如下:
xcodebuild archive \ -scheme dst \ -configuration Release \ -archivePath ../builds/dst.xcarchive \ -workspace dst.xcworkspace \ PROVISIONING_PROFILE_SPECIFIER="test-dst-provisioning-release" \ CODE_SIGN_STYLE="Manual" \ CODE_SIGN_IDENTITY="Apple Distribution: $(Team code)"
如果业务要求必须使用旧构建系统,需要在命令末尾追加继承Pods配置的参数:
# 末尾添加以下参数即可 -inherit all
3. 校验Xcode路径配置
- 打开对应Target的Build Settings,找到
Library Search Paths配置项,确保$(inherited)排在配置列表的第一位 - 确认
${PODS_ROOT}/BoringSSL-GRPC路径的属性为递归(recursive)
4. 修正SSH环境变量差异
SSH登录远程Mac时默认加载的环境配置和GUI登录不一致,执行构建命令前先加载用户环境配置:
# 若远程Mac使用zsh终端 source ~/.zshrc # 若远程Mac使用bash终端 source ~/.bash_profile # 校验Xcode命令行工具路径 xcode-select -p # 若输出不是/Applications/Xcode.app/Contents/Developer,执行以下命令修正 sudo xcode-select -s /Applications/Xcode.app/Contents/Developer
5. 清理缓存重试
执行构建命令前先清理残留缓存避免干扰:
rm -rf ~/Library/Developer/Xcode/DerivedData/* xcodebuild clean -workspace dst.xcworkspace -scheme dst -configuration Release
内容的提问来源于stack exchange,提问作者Attila Berczik
相关产品推荐
相关产品推荐

