项目场景:
使用 Cocoapod 管理三方框架。
问题描述
执行 pod 命令时,出现错误提示,例如:
pod install --verbose -no-repo-update
错误信息
Ignoring json-2.6.2 because its extensions are not built. Try: gem pristine json --version 2.6.2
Ignoring json-2.6.2 because its extensions are not built. Try: gem pristine json --version 2.6.2
Ignoring ffi-1.13.1 because its extensions are not built. Try: gem pristine ffi --version 1.13.1
Ignoring json-2.6.2 because its extensions are not built. Try: gem pristine json --version 2.6.2
Ignoring json-2.6.2 because its extensions are not built. Try: gem pristine json --version 2.6.2
Ignoring ffi-1.13.1 because its extensions are not built. Try: gem pristine ffi --version 1.13.1
Ignoring json-2.6.2 because its extensions are not built. Try: gem pristine json --version 2.6.2
Ignoring json-2.6.2 because its extensions are not built. Try: gem pristine json --version 2.6.2
Ignoring ffi-1.13.1 because its extensions are not built. Try: gem pristine ffi --version 1.13.1
Ignoring json-2.6.2 because its extensions are not built. Try: gem pristine json --version 2.6.2
Ignoring json-2.6.2 because its extensions are not built. Try: gem pristine json --version 2.6.2
Ignoring ffi-1.13.1 because its extensions are not built. Try: gem pristine ffi --version 1.13.1
Ignoring json-2.6.2 because its extensions are not built. Try: gem pristine json --version 2.6.2
Ignoring json-2.6.2 because its extensions are not built. Try: gem pristine json --version 2.6.2
Ignoring ffi-1.13.1 because its extensions are not built. Try: gem pristine ffi --version 1.13.1
Ignoring json-2.6.2 because its extensions are not built. Try: gem pristine json --version 2.6.2
Ignoring json-2.6.2 because its extensions are not built. Try: gem pristine json --version 2.6.2
Ignoring ffi-1.13.1 because its extensions are not built. Try: gem pristine ffi --version 1.13.1
Ignoring json-2.6.2 because its extensions are not built. Try: gem pristine json --version 2.6.2
Ignoring json-2.6.2 because its extensions are not built. Try: gem pristine json --version 2.6.2
Ignoring ffi-1.13.1 because its extensions are not built. Try: gem pristine ffi --version 1.13.1
Ignoring json-2.6.2 because its extensions are not built. Try: gem pristine json --version 2.6.2
Ignoring json-2.6.2 because its extensions are not built. Try: gem pristine json --version 2.6.2
Ignoring ffi-1.13.1 because its extensions are not built. Try: gem pristine ffi --version 1.13.1
Ignoring json-2.6.2 because its extensions are not built. Try: gem pristine json --version 2.6.2
Ignoring json-2.6.2 because its extensions are not built. Try: gem pristine json --version 2.6.2
Ignoring ffi-1.13.1 because its extensions are not built. Try: gem pristine ffi --version 1.13.1
Ignoring json-2.6.2 because its extensions are not built. Try: gem pristine json --version 2.6.2
Ignoring json-2.6.2 because its extensions are not built. Try: gem pristine json --version 2.6.2
Ignoring ffi-1.13.1 because its extensions are not built. Try: gem pristine ffi --version 1.13.1
Ignoring json-2.6.2 because its extensions are not built. Try: gem pristine json --version 2.6.2
Ignoring json-2.6.2 because its extensions are not built. Try: gem pristine json --version 2.6.2
Ignoring ffi-1.13.1 because its extensions are not built. Try: gem pristine ffi --version 1.13.1
Ignoring json-2.6.2 because its extensions are not built. Try: gem pristine json --version 2.6.2
Ignoring json-2.6.2 because its extensions are not built. Try: gem pristine json --version 2.6.2
Ignoring ffi-1.13.1 because its extensions are not built. Try: gem pristine ffi --version 1.13.1
Ignoring json-2.6.2 because its extensions are not built. Try: gem pristine json --version 2.6.2
Ignoring json-2.6.2 because its extensions are not built. Try: gem pristine json --version 2.6.2
Ignoring ffi-1.13.1 because its extensions are not built. Try: gem pristine ffi --version 1.13.1
Ignoring json-2.6.2 because its extensions are not built. Try: gem pristine json --version 2.6.2
Ignoring json-2.6.2 because its extensions are not built. Try: gem pristine json --version 2.6.2
Ignoring ffi-1.13.1 because its extensions are not built. Try: gem pristine ffi --version 1.13.1
Ignoring json-2.6.2 because its extensions are not built. Try: gem pristine json --version 2.6.2
Ignoring json-2.6.2 because its extensions are not built. Try: gem pristine json --version 2.6.2
Ignoring ffi-1.13.1 because its extensions are not built. Try: gem pristine ffi --version 1.13.1
Ignoring json-2.6.2 because its extensions are not built. Try: gem pristine json --version 2.6.2
Ignoring json-2.6.2 because its extensions are not built. Try: gem pristine json --version 2.6.2
Ignoring ffi-1.13.1 because its extensions are not built. Try: gem pristine ffi --version 1.13.1
Ignoring json-2.6.2 because its extensions are not built. Try: gem pristine json --version 2.6.2
Ignoring json-2.6.2 because its extensions are not built. Try: gem pristine json --version 2.6.2
Ignoring ffi-1.13.1 because its extensions are not built. Try: gem pristine ffi --version 1.13.1
Ignoring json-2.6.2 because its extensions are not built. Try: gem pristine json --version 2.6.2
Ignoring json-2.6.2 because its extensions are not built. Try: gem pristine json --version 2.6.2
Ignoring ffi-1.13.1 because its extensions are not built. Try: gem pristine ffi --version 1.13.1
Ignoring json-2.6.2 because its extensions are not built. Try: gem pristine json --version 2.6.2
Ignoring json-2.6.2 because its extensions are not built. Try: gem pristine json --version 2.6.2
Ignoring ffi-1.13.1 because its extensions are not built. Try: gem pristine ffi --version 1.13.1
Ignoring json-2.6.2 because its extensions are not built. Try: gem pristine json --version 2.6.2
Ignoring json-2.6.2 because its extensions are not built. Try: gem pristine json --version 2.6.2
Ignoring ffi-1.13.1 because its extensions are not built. Try: gem pristine ffi --version 1.13.1
Ignoring json-2.6.2 because its extensions are not built. Try: gem pristine json --version 2.6.2
Ignoring json-2.6.2 because its extensions are not built. Try: gem pristine json --version 2.6.2
Ignoring ffi-1.13.1 because its extensions are not built. Try: gem pristine ffi --version 1.13.1
Ignoring json-2.6.2 because its extensions are not built. Try: gem pristine json --version 2.6.2
Ignoring json-2.6.2 because its extensions are not built. Try: gem pristine json --version 2.6.2
Ignoring ffi-1.13.1 because its extensions are not built. Try: gem pristine ffi --version 1.13.1
Ignoring json-2.6.2 because its extensions are not built. Try: gem pristine json --version 2.6.2
Ignoring json-2.6.2 because its extensions are not built. Try: gem pristine json --version 2.6.2
Ignoring ffi-1.13.1 because its extensions are not built. Try: gem pristine ffi --version 1.13.1
Ignoring json-2.6.2 because its extensions are not built. Try: gem pristine json --version 2.6.2
Ignoring json-2.6.2 because its extensions are not built. Try: gem pristine json --version 2.6.2
Ignoring ffi-1.13.1 because its extensions are not built. Try: gem pristine ffi --version 1.13.1
Ignoring json-2.6.2 because its extensions are not built. Try: gem pristine json --version 2.6.2
Ignoring json-2.6.2 because its extensions are not built. Try: gem pristine json --version 2.6.2
Ignoring ffi-1.13.1 because its extensions are not built. Try: gem pristine ffi --version 1.13.1
Ignoring json-2.6.2 because its extensions are not built. Try: gem pristine json --version 2.6.2
Ignoring json-2.6.2 because its extensions are not built. Try: gem pristine json --version 2.6.2
Ignoring ffi-1.13.1 because its extensions are not built. Try: gem pristine ffi --version 1.13.1
Ignoring json-2.6.2 because its extensions are not built. Try: gem pristine json --version 2.6.2
Ignoring json-2.6.2 because its extensions are not built. Try: gem pristine json --version 2.6.2
Ignoring ffi-1.13.1 because its extensions are not built. Try: gem pristine ffi --version 1.13.1
Ignoring json-2.6.2 because its extensions are not built. Try: gem pristine json --version 2.6.2
Ignoring json-2.6.2 because its extensions are not built. Try: gem pristine json --version 2.6.2
Ignoring ffi-1.13.1 because its extensions are not built. Try: gem pristine ffi --version 1.13.1
Ignoring json-2.6.2 because its extensions are not built. Try: gem pristine json --version 2.6.2
Ignoring json-2.6.2 because its extensions are not built. Try: gem pristine json --version 2.6.2
Ignoring ffi-1.13.1 because its extensions are not built. Try: gem pristine ffi --version 1.13.1
Ignoring json-2.6.2 because its extensions are not built. Try: gem pristine json --version 2.6.2
Ignoring json-2.6.2 because its extensions are not built. Try: gem pristine json --version 2.6.2
Ignoring ffi-1.13.1 because its extensions are not built. Try: gem pristine ffi --version 1.13.1
Ignoring json-2.6.2 because its extensions are not built. Try: gem pristine json --version 2.6.2
Ignoring json-2.6.2 because its extensions are not built. Try: gem pristine json --version 2.6.2
Ignoring ffi-1.13.1 because its extensions are not built. Try: gem pristine ffi --version 1.13.1
Ignoring json-2.6.2 because its extensions are not built. Try: gem pristine json --version 2.6.2
Ignoring json-2.6.2 because its extensions are not built. Try: gem pristine json --version 2.6.2
Ignoring ffi-1.13.1 because its extensions are not built. Try: gem pristine ffi --version 1.13.1
Ignoring json-2.6.2 because its extensions are not built. Try: gem pristine json --version 2.6.2
Ignoring json-2.6.2 because its extensions are not built. Try: gem pristine json --version 2.6.2
Ignoring ffi-1.13.1 because its extensions are not built. Try: gem pristine ffi --version 1.13.1
Ignoring json-2.6.2 because its extensions are not built. Try: gem pristine json --version 2.6.2
Ignoring json-2.6.2 because its extensions are not built. Try: gem pristine json --version 2.6.2
Ignoring ffi-1.13.1 because its extensions are not built. Try: gem pristine ffi --version 1.13.1
Ignoring json-2.6.2 because its extensions are not built. Try: gem pristine json --version 2.6.2
Ignoring json-2.6.2 because its extensions are not built. Try: gem pristine json --version 2.6.2
Ignoring ffi-1.13.1 because its extensions are not built. Try: gem pristine ffi --version 1.13.1
Ignoring json-2.6.2 because its extensions are not built. Try: gem pristine json --version 2.6.2
Ignoring json-2.6.2 because its extensions are not built. Try: gem pristine json --version 2.6.2
Ignoring ffi-1.13.1 because its extensions are not built. Try: gem pristine ffi --version 1.13.1
Ignoring json-2.6.2 because its extensions are not built. Try: gem pristine json --version 2.6.2
Ignoring json-2.6.2 because its extensions are not built. Try: gem pristine json --version 2.6.2
Ignoring ffi-1.13.1 because its extensions are not built. Try: gem pristine ffi --version 1.13.1
Ignoring json-2.6.2 because its extensions are not built. Try: gem pristine json --version 2.6.2
Ignoring json-2.6.2 because its extensions are not built. Try: gem pristine json --version 2.6.2
Ignoring ffi-1.13.1 because its extensions are not built. Try: gem pristine ffi --version 1.13.1
Ignoring json-2.6.2 because its extensions are not built. Try: gem pristine json --version 2.6.2
Ignoring json-2.6.2 because its extensions are not built. Try: gem pristine json --version 2.6.2
Ignoring ffi-1.13.1 because its extensions are not built. Try: gem pristine ffi --version 1.13.1
Ignoring json-2.6.2 because its extensions are not built. Try: gem pristine json --version 2.6.2
Ignoring json-2.6.2 because its extensions are not built. Try: gem pristine json --version 2.6.2
Ignoring ffi-1.13.1 because its extensions are not built. Try: gem pristine ffi --version 1.13.1
Ignoring json-2.6.2 because its extensions are not built. Try: gem pristine json --version 2.6.2
Ignoring json-2.6.2 because its extensions are not built. Try: gem pristine json --version 2.6.2
Ignoring ffi-1.13.1 because its extensions are not built. Try: gem pristine ffi --version 1.13.1
Ignoring json-2.6.2 because its extensions are not built. Try: gem pristine json --version 2.6.2
Ignoring json-2.6.2 because its extensions are not built. Try: gem pristine json --version 2.6.2
Ignoring ffi-1.13.1 because its extensions are not built. Try: gem pristine ffi --version 1.13.1
Ignoring json-2.6.2 because its extensions are not built. Try: gem pristine json --version 2.6.2
Ignoring json-2.6.2 because its extensions are not built. Try: gem pristine json --version 2.6.2
Ignoring ffi-1.13.1 because its extensions are not built. Try: gem pristine ffi --version 1.13.1
Ignoring json-2.6.2 because its extensions are not built. Try: gem pristine json --version 2.6.2
Ignoring json-2.6.2 because its extensions are not built. Try: gem pristine json --version 2.6.2
Ignoring ffi-1.13.1 because its extensions are not built. Try: gem pristine ffi --version 1.13.1
Ignoring json-2.6.2 because its extensions are not built. Try: gem pristine json --version 2.6.2
Ignoring json-2.6.2 because its extensions are not built. Try: gem pristine json --version 2.6.2
Ignoring ffi-1.13.1 because its extensions are not built. Try: gem pristine ffi --version 1.13.1
Ignoring json-2.6.2 because its extensions are not built. Try: gem pristine json --version 2.6.2
Ignoring json-2.6.2 because its extensions are not built. Try: gem pristine json --version 2.6.2
Ignoring ffi-1.13.1 because its extensions are not built. Try: gem pristine ffi --version 1.13.1
Ignoring json-2.6.2 because its extensions are not built. Try: gem pristine json --version 2.6.2
Ignoring json-2.6.2 because its extensions are not built. Try: gem pristine json --version 2.6.2
Ignoring ffi-1.13.1 because its extensions are not built. Try: gem pristine ffi --version 1.13.1
Ignoring json-2.6.2 because its extensions are not built. Try: gem pristine json --version 2.6.2
Ignoring json-2.6.2 because its extensions are not built. Try: gem pristine json --version 2.6.2
Ignoring ffi-1.13.1 because its extensions are not built. Try: gem pristine ffi --version 1.13.1
Ignoring json-2.6.2 because its extensions are not built. Try: gem pristine json --version 2.6.2
Ignoring json-2.6.2 because its extensions are not built. Try: gem pristine json --version 2.6.2
Ignoring ffi-1.13.1 because its extensions are not built. Try: gem pristine ffi --version 1.13.1
Ignoring json-2.6.2 because its extensions are not built. Try: gem pristine json --version 2.6.2
Ignoring json-2.6.2 because its extensions are not built. Try: gem pristine json --version 2.6.2
Ignoring ffi-1.13.1 because its extensions are not built. Try: gem pristine ffi --version 1.13.1
Ignoring json-2.6.2 because its extensions are not built. Try: gem pristine json --version 2.6.2
Ignoring json-2.6.2 because its extensions are not built. Try: gem pristine json --version 2.6.2
Ignoring ffi-1.13.1 because its extensions are not built. Try: gem pristine ffi --version 1.13.1
Ignoring json-2.6.2 because its extensions are not built. Try: gem pristine json --version 2.6.2
Ignoring json-2.6.2 because its extensions are not built. Try: gem pristine json --version 2.6.2
Ignoring ffi-1.13.1 because its extensions are not built. Try: gem pristine ffi --version 1.13.1
Ignoring json-2.6.2 because its extensions are not built. Try: gem pristine json --version 2.6.2
Ignoring json-2.6.2 because its extensions are not built. Try: gem pristine json --version 2.6.2
Ignoring ffi-1.13.1 because its extensions are not built. Try: gem pristine ffi --version 1.13.1
Ignoring json-2.6.2 because its extensions are not built. Try: gem pristine json --version 2.6.2
Ignoring json-2.6.2 because its extensions are not built. Try: gem pristine json --version 2.6.2
Ignoring ffi-1.13.1 because its extensions are not built. Try: gem pristine ffi --version 1.13.1
Ignoring json-2.6.2 because its extensions are not built. Try: gem pristine json --version 2.6.2
Ignoring json-2.6.2 because its extensions are not built. Try: gem pristine json --version 2.6.2
Ignoring ffi-1.13.1 because its extensions are not built. Try: gem pristine ffi --version 1.13.1
Ignoring json-2.6.2 because its extensions are not built. Try: gem pristine json --version 2.6.2
Ignoring json-2.6.2 because its extensions are not built. Try: gem pristine json --version 2.6.2
Ignoring ffi-1.13.1 because its extensions are not built. Try: gem pristine ffi --version 1.13.1
Ignoring json-2.6.2 because its extensions are not built. Try: gem pristine json --version 2.6.2
Ignoring json-2.6.2 because its extensions are not built. Try: gem pristine json --version 2.6.2
Ignoring ffi-1.13.1 because its extensions are not built. Try: gem pristine ffi --version 1.13.1
Ignoring json-2.6.2 because its extensions are not built. Try: gem pristine json --version 2.6.2
Ignoring json-2.6.2 because its extensions are not built. Try: gem pristine json --version 2.6.2
Ignoring ffi-1.13.1 because its extensions are not built. Try: gem pristine ffi --version 1.13.1
Ignoring json-2.6.2 because its extensions are not built. Try: gem pristine json --version 2.6.2
Ignoring json-2.6.2 because its extensions are not built. Try: gem pristine json --version 2.6.2
Ignoring ffi-1.13.1 because its extensions are not built. Try: gem pristine ffi --version 1.13.1
Ignoring json-2.6.2 because its extensions are not built. Try: gem pristine json --version 2.6.2
Ignoring json-2.6.2 because its extensions are not built. Try: gem pristine json --version 2.6.2
Ignoring ffi-1.13.1 because its extensions are not built. Try: gem pristine ffi --version 1.13.1
Ignoring json-2.6.2 because its extensions are not built. Try: gem pristine json --version 2.6.2
Ignoring json-2.6.2 because its extensions are not built. Try: gem pristine json --version 2.6.2
Ignoring ffi-1.13.1 because its extensions are not built. Try: gem pristine ffi --version 1.13.1
Ignoring json-2.6.2 because its extensions are not built. Try: gem pristine json --version 2.6.2
Ignoring json-2.6.2 because its extensions are not built. Try: gem pristine json --version 2.6.2
Ignoring ffi-1.13.1 because its extensions are not built. Try: gem pristine ffi --version 1.13.1
Ignoring json-2.6.2 because its extensions are not built. Try: gem pristine json --version 2.6.2
Ignoring json-2.6.2 because its extensions are not built. Try: gem pristine json --version 2.6.2
Ignoring ffi-1.13.1 because its extensions are not built. Try: gem pristine ffi --version 1.13.1
Ignoring json-2.6.2 because its extensions are not built. Try: gem pristine json --version 2.6.2
Ignoring json-2.6.2 because its extensions are not built. Try: gem pristine json --version 2.6.2
Ignoring ffi-1.13.1 because its extensions are not built. Try: gem pristine ffi --version 1.13.1
Ignoring json-2.6.2 because its extensions are not built. Try: gem pristine json --version 2.6.2
Ignoring json-2.6.2 because its extensions are not built. Try: gem pristine json --version 2.6.2
Ignoring ffi-1.13.1 because its extensions are not built. Try: gem pristine ffi --version 1.13.1
Ignoring json-2.6.2 because its extensions are not built. Try: gem pristine json --version 2.6.2
Ignoring json-2.6.2 because its extensions are not built. Try: gem pristine json --version 2.6.2
Ignoring ffi-1.13.1 because its extensions are not built. Try: gem pristine ffi --version 1.13.1
Ignoring json-2.6.2 because its extensions are not built. Try: gem pristine json --version 2.6.2
Ignoring json-2.6.2 because its extensions are not built. Try: gem pristine json --version 2.6.2
Ignoring ffi-1.13.1 because its extensions are not built. Try: gem pristine ffi --version 1.13.1
Ignoring json-2.6.2 because its extensions are not built. Try: gem pristine json --version 2.6.2
Ignoring json-2.6.2 because its extensions are not built. Try: gem pristine json --version 2.6.2
Ignoring ffi-1.13.1 because its extensions are not built. Try: gem pristine ffi --version 1.13.1
Ignoring json-2.6.2 because its extensions are not built. Try: gem pristine json --version 2.6.2
Ignoring json-2.6.2 because its extensions are not built. Try: gem pristine json --version 2.6.2
Ignoring ffi-1.13.1 because its extensions are not built. Try: gem pristine ffi --version 1.13.1
Ignoring json-2.6.2 because its extensions are not built. Try: gem pristine json --version 2.6.2
Ignoring json-2.6.2 because its extensions are not built. Try: gem pristine json --version 2.6.2
Ignoring ffi-1.13.1 because its extensions are not built. Try: gem pristine ffi --version 1.13.1
Ignoring json-2.6.2 because its extensions are not built. Try: gem pristine json --version 2.6.2
Ignoring json-2.6.2 because its extensions are not built. Try: gem pristine json --version 2.6.2
Ignoring ffi-1.13.1 because its extensions are not built. Try: gem pristine ffi --version 1.13.1
Ignoring json-2.6.2 because its extensions are not built. Try: gem pristine json --version 2.6.2
Ignoring json-2.6.2 because its extensions are not built. Try: gem pristine json --version 2.6.2
Ignoring ffi-1.13.1 because its extensions are not built. Try: gem pristine ffi --version 1.13.1
Ignoring json-2.6.2 because its extensions are not built. Try: gem pristine json --version 2.6.2
Ignoring json-2.6.2 because its extensions are not built. Try: gem pristine json --version 2.6.2
Ignoring ffi-1.13.1 because its extensions are not built. Try: gem pristine ffi --version 1.13.1
Ignoring json-2.6.2 because its extensions are not built. Try: gem pristine json --version 2.6.2
Ignoring json-2.6.2 because its extensions are not built. Try: gem pristine json --version 2.6.2
Ignoring ffi-1.13.1 because its extensions are not built. Try: gem pristine ffi --version 1.13.1
Ignoring json-2.6.2 because its extensions are not built. Try: gem pristine json --version 2.6.2
Ignoring json-2.6.2 because its extensions are not built. Try: gem pristine json --version 2.6.2
Ignoring ffi-1.13.1 because its extensions are not built. Try: gem pristine ffi --version 1.13.1
Ignoring ffi-1.13.1 because its extensions are not built. Try: gem pristine ffi --version 1.13.1
Ignoring json-2.6.2 because its extensions are not built. Try: gem pristine json --version 2.6.2
Ignoring unf_ext-0.0.7.7 because its extensions are not built. Try: gem pristine unf_ext --version 0.0.7.7
原因分析:
错误信息中显示:
- ffi 需要升级到 1.13.1 版本;
- json 需要升级到 2.6.2 版本;
- unf_ext 需要升级到 0.0.7.7 版本。
解决方案:
执行 gem pristine json --version 2.6.2
升级版本。报错
mac ~ % gem pristine json --version 2.6.2
Ignoring ffi-1.13.1 because its extensions are not built. Try: gem pristine ffi --version 1.13.1
Ignoring json-2.6.2 because its extensions are not built. Try: gem pristine json --version 2.6.2
Ignoring unf_ext-0.0.7.7 because its extensions are not built. Try: gem pristine unf_ext --version 0.0.7.7
ERROR: While executing gem ... (Gem::FilePermissionError)
You don't have write permissions for the /Library/Ruby/Gems/2.6.0 directory.
报错原因是没有权限,就加上权限,继续执行
sudo gem pristine json --version 2.6.2
同理,升级 ffi 版本
gem pristine ffi --version 1.13.1
unf_ext 版本
gem pristine unf_ext --version 0.0.7.7