升级Xcode12.3和Big Sur后执行pod install遇ffi相关错误求助
解决Big Sur + Xcode 12.3下Pod Install的FFI相关错误
我之前在升级到Big Sur和Xcode 12.3的时候也碰到过完全一样的ffi问题,折腾了一阵终于解决了,给你几个可行的方案:
方案一:修复现有FFI扩展
错误提示里已经给出了直接的修复命令,不过因为是系统Ruby,可能需要加上sudo获取权限:
sudo gem pristine ffi --version 1.13.1
执行完这个命令后,再尝试运行pod install看看是否解决问题。如果还是不行,试试下面的方案。
方案二:升级FFI到兼容Big Sur的版本
旧版本的ffi(1.13.1)可能和Big Sur的系统环境不兼容,我们可以直接安装一个更适配的新版本:
sudo gem install ffi --version 1.15.4
这个版本是经过验证可以在Big Sur上正常运行的,安装完成后再执行pod install应该就能避开版本找不到的错误。
方案三:使用Ruby版本管理器(推荐)
系统自带的Ruby经常会因为系统升级出现兼容性问题,更稳妥的方式是用版本管理器安装独立的Ruby环境,彻底和系统Ruby划清界限:
- 先安装rbenv(如果没装Homebrew的话,先装Homebrew):
brew install rbenv - 初始化rbenv,把它加入你的shell配置(比如Zsh是
~/.zshrc,Bash是~/.bash_profile):
运行完后按照提示,把对应的代码添加到你的shell配置文件里,然后重启终端或者执行rbenv initsource ~/.zshrc生效。 - 安装一个兼容Big Sur的Ruby版本,比如2.7.5:
rbenv install 2.7.5 - 设置全局Ruby版本(或者在项目目录下设置本地版本):
rbenv global 2.7.5 - 重新安装CocoaPods:
gem install cocoapods - 最后验证一下,执行
pod install应该就能正常工作了。
问题根源说明
Big Sur和Xcode 12.3升级后,系统的编译环境和架构发生了一些变化,导致旧版本的ffi扩展无法正常构建和加载。系统自带的Ruby 2.6.3是比较旧的版本,和新系统的兼容性不如新的Ruby版本好,所以要么升级ffi,要么更换Ruby版本,就能解决这个问题。
内容的提问来源于stack exchange,提问作者Difeng Chen
相关产品推荐
相关产品推荐

