React Native中CocoaPods安装minitest缺失、权限及ffi编译报错
问题修复步骤
1. 清理所有损坏的CocoaPods残留安装
执行以下命令彻底删除brew、gem渠道安装的损坏版本及缓存:
# 卸载brew版CocoaPods brew uninstall --force cocoapods brew cleanup --prune=all # 删除gem渠道残留的CocoaPods、损坏的ffi包 sudo rm -rf ~/.gem/ruby/2.6.0/gems/cocoapods* sudo rm -rf ~/.gem/ruby/2.6.0/gems/ffi-* sudo rm -rf /Library/Ruby/Gems/2.6.0/gems/cocoapods* # 修复gem目录权限,解决Errno::EACCES权限拒绝问题 sudo chown -R $(whoami) ~/.gem
2. 安装编译依赖,解决ffi.h找不到的编译错误
首先配置Xcode命令行工具,这是Ruby原生扩展编译的基础依赖:
# 安装Xcode命令行工具,已安装可跳过 sudo xcode-select --install # 指向Xcode默认开发者目录,解决编译器找不到的问题 sudo xcode-select -s /Applications/Xcode.app/Contents/Developer # 接受Xcode许可协议 sudo xcodebuild -license accept
然后安装libffi依赖,补充头文件搜索路径:
brew install libffi
3. 修复shell环境配置
编辑~/.bash_profile(如果使用zsh则编辑~/.zshrc),替换原有相关配置段,修正RVM加载顺序、GEM路径、libffi环境变量:
# RVM加载必须放到所有PATH配置最前 [[ -s "$HOME/.rvm/scripts/rvm" ]] && source "$HOME/.rvm/scripts/rvm" # Android开发环境配置保留 export ANDROID_HOME=$HOME/Library/Android/sdk export PATH=$PATH:$ANDROID_HOME/emulator export PATH=$PATH:$ANDROID_HOME/tools export PATH=$PATH:$ANDROID_HOME/tools/bin export PATH=$PATH:$ANDROID_HOME/platform-tools # 修正GEM路径,匹配系统Ruby 2.6.0版本,解决PATH找不到gem命令的警告 export GEM_HOME=$HOME/.gem/ruby/2.6.0 export PATH=$GEM_HOME/bin:$PATH # 补充libffi编译参数,解决ffi扩展找不到头文件的问题 export LDFLAGS="-L/usr/local/opt/libffi/lib" export CPPFLAGS="-I/usr/local/opt/libffi/include" export PKG_CONFIG_PATH="/usr/local/opt/libffi/lib/pkgconfig" # colorls配置保留,需在PATH配置完成后加载 source $(dirname $(gem which colorls))/tab_complete.sh alias lc='colorls'
执行命令让配置立即生效:
source ~/.bash_profile # 用zsh的话执行 source ~/.zshrc
4. 重新安装稳定版CocoaPods
先安装ffi依赖验证编译环境正常,再安装CocoaPods(1.11.3版本对React Native兼容性最优,不建议安装过新版本):
gem install ffi gem install cocoapods -v 1.11.3
注意:如果使用M1/M2系列Apple Silicon芯片的设备,安装ffi请执行arch -x86_64 gem install ffi,后续执行pod相关命令时也可增加arch -x86_64前缀适配架构兼容问题。
安装完成后执行pod --version,正常输出版本号即安装成功。
5. 回到React Native项目修复Pod依赖
进入项目ios目录,清理旧的Pod缓存后重新安装依赖:
cd 你的RN项目/ios rm -rf Pods Podfile.lock pod deintegrate pod install --repo-update
报错对应原因说明
- brew渠道安装报
minitest >=5.1找不到:是brew打包的CocoaPods隔离环境依赖缺失,彻底卸载后改用gem渠道安装即可绕开 - gem安装报PATH警告:原有GEM_HOME配置未匹配Ruby 2.6.0的实际二进制目录,修正环境变量即可解决
- gem安装报EACCES权限错误:之前使用sudo安装gem包导致~/.gem目录所有者变为root,修改目录归属为当前用户即可修复
- ffi扩展编译失败、找不到ffi.h:一是Xcode命令行工具未正确配置,二是libffi头文件未加入系统搜索路径,按上述步骤装依赖补环境变量即可解决
内容的提问来源于stack exchange,提问作者Sylvino
相关产品推荐
相关产品推荐

