Flutter sdk包安装之后按照 $flutter doctor 命令的输出教程进行flutter环境配置的过程中, 安装完cocoapods, 进行pod setup遇到了一长串如下的error:

Ignoring GEM because its extensions are not built. Try: gem pristine GEM --version X.X.X

具体的error截取如下:

Ignoring rmagick-2.16.0 because its extensions are not built.  Try: gem pristine rmagick --version 2.16.0
Ignoring unf_ext-0.0.7.5 because its extensions are not built.  Try: gem pristine unf_ext --version 0.0.7.5
Ignoring unf_ext-0.0.7.4 because its extensions are not built.  Try: gem pristine unf_ext --version 0.0.7.4
Ignoring websocket-driver-0.7.0 because its extensions are not built.  Try: gem pristine websocket-driver --version 0.7.0
Ignoring websocket-driver-0.6.5 because its extensions are not built.  Try: gem pristine websocket-driver --version 0.6.5
/System/Library/Frameworks/Ruby.framework/Versions/2.3/usr/lib/ruby/2.3.0/rubygems/core_ext/kernel_require.rb:120:in `require': incompatible library version - /Users/alfredhot/.rvm/gems/ruby-2.3.1/gems/bigdecimal-1.3.2/lib/bigdecimal.bundle (LoadError)
	from /System/Library/Frameworks/Ruby.framework/Versions/2.3/usr/lib/ruby/2.3.0/rubygems/core_ext/kernel_require.rb:120:in `require'
...

折腾了半天, 在网上找到了原因.

因为cocoapods 是ruby语言, 安装的时候用的ruby, 和之前安装gem的时候的ruby版本不一样, 所以起了冲突.

可以运行一下$which -a ruby命令, 就可以看到系统里应该是安装了两个ruby.

我的解决办法是:

$gem update

把系统里的gem全都更新了一遍, 不知道是不是在更新时使用的是系统当前使用的ruby, 总之 $pods setup愉快的运行起来了.

stack overflow里各路大神也给出了多样的解决办法. 如果有人用上面的方法也可以尝试一下大神们给出的思路.

$gem prestin --all

如若不行, 可以尝试重新安装ruby

$reinstall ruby
$reinstall all gems
$gem pristine --all

问题应该能够解决.

参考: Stack Overflow