错误:安装cocoapods时出错:错误:无法构建gem原生扩展

gra*_*n33 20 ios cocoapods osx-mavericks

我正在尝试将cocoapods安装到运行OSX 10.9.1(新的mavericks)的macbook pro中,并且在类型gem install cocoapodsI之后出现以下错误:

    Building native extensions.  This could take a while...
ERROR:  Error installing cocoapods:
    ERROR: Failed to build gem native extension.

        "/usr/local/rvm/rubies/ruby-1.9.3-p194/bin/ruby" -rubygems /usr/local/rvm/gems/ruby-1.9.3-p194/gems/rake-10.1.1/bin/rake RUBYARCHDIR=/Users/rangreenberg/gems/gems/xcodeproj-0.14.1/ext RUBYLIBDIR=/Users/rangreenberg/gems/gems/xcodeproj-0.14.1/ext
/usr/local/rvm/rubies/ruby-1.9.3-p194/bin/ruby extconf.rb
checking for -std=c99 option to compiler... *** extconf.rb failed ***
Could not create Makefile due to some reason, probably lack of
necessary libraries and/or headers.  Check the mkmf.log file for more
details.  You may need configuration options.

Provided configuration options:
    --with-opt-dir
    --with-opt-include
    --without-opt-include=${opt-dir}/include
    --with-opt-lib
    --without-opt-lib=${opt-dir}/lib
    --with-make-prog
    --without-make-prog
    --srcdir=.
    --curdir
    --ruby=/usr/local/rvm/rubies/ruby-1.9.3-p194/bin/ruby
/usr/local/rvm/rubies/ruby-1.9.3-p194/lib/ruby/1.9.1/mkmf.rb:381:in `try_do': The compiler failed to generate an executable file. (RuntimeError)
You have to install development tools first.
    from /usr/local/rvm/rubies/ruby-1.9.3-p194/lib/ruby/1.9.1/mkmf.rb:491:in `block in try_compile'
    from /usr/local/rvm/rubies/ruby-1.9.3-p194/lib/ruby/1.9.1/mkmf.rb:443:in `with_werror'
    from /usr/local/rvm/rubies/ruby-1.9.3-p194/lib/ruby/1.9.1/mkmf.rb:491:in `try_compile'
    from extconf.rb:24:in `block in <main>'
    from /usr/local/rvm/rubies/ruby-1.9.3-p194/lib/ruby/1.9.1/mkmf.rb:790:in `block in checking_for'
    from /usr/local/rvm/rubies/ruby-1.9.3-p194/lib/ruby/1.9.1/mkmf.rb:284:in `block (2 levels) in postpone'
    from /usr/local/rvm/rubies/ruby-1.9.3-p194/lib/ruby/1.9.1/mkmf.rb:254:in `open'
    from /usr/local/rvm/rubies/ruby-1.9.3-p194/lib/ruby/1.9.1/mkmf.rb:284:in `block in postpone'
    from /usr/local/rvm/rubies/ruby-1.9.3-p194/lib/ruby/1.9.1/mkmf.rb:254:in `open'
    from /usr/local/rvm/rubies/ruby-1.9.3-p194/lib/ruby/1.9.1/mkmf.rb:280:in `postpone'
    from /usr/local/rvm/rubies/ruby-1.9.3-p194/lib/ruby/1.9.1/mkmf.rb:789:in `checking_for'
    from extconf.rb:23:in `<main>'
rake aborted!
Command failed with status (1): [/usr/local/rvm/rubies/ruby-1.9.3-p194/bin/...]

Tasks: TOP => default => ext
(See full trace by running task with --trace)


Gem files will remain installed in /Users/rangreenberg/gems/gems/xcodeproj-0.14.1 for inspection.
Results logged to /Users/rangreenberg/gems/gems/xcodeproj-0.14.1/ext/xcodeproj/gem_make.out
Run Code Online (Sandbox Code Playgroud)

任何帮助都会很棒.提前致谢.

Jig*_*kar 291

运行以下命令

 brew cleanup -d -v 
Run Code Online (Sandbox Code Playgroud)

然后运行下面的命令

brew install cocoapods 
Run Code Online (Sandbox Code Playgroud)

注意:如果您看到无法链接,请运行 brew link cocoapods

这就是它为我解决的方法

对于拥有 m1 芯片系统的人,他们需要通过 Rosetta 运行它

选择终端并按 cmd(?)+I 并选中“使用 Rosetta 打开”选项。(对于基于 m1 芯片的 mac )

  • 使用“brew link cocoapods”修复链接错误后,我出现了另一个错误“无法符号链接 bin/pod”。我通过运行“brew link --overwrite cocoapods”修复了符号链接错误。 (17认同)
  • 是的。经过一个小时的尝试使用 rvm 和 gem 更新内容后,尝试使用 brew 效果非常好。谢谢! (4认同)

小智 94

首先,检查您使用的 Ruby 版本。

$ruby -v
ruby 2.7.1p83 (2020-03-31 revision a0c7c23c9c) [x86_64-darwin18]
$ which ruby
usr/bin/ruby
Run Code Online (Sandbox Code Playgroud)

现在使用 Homebrew 安装最新的 Ruby。

$ brew install ruby
==> ruby
By default, binaries installed by gem will be placed into:
/usr/local/lib/ruby/gems/2.7.0/bin

You may want to add this to your PATH.

ruby is keg-only, which means it was not symlinked into /usr/local,
because macOS already provides this software and installing another version in
parallel can cause all kinds of trouble.
Run Code Online (Sandbox Code Playgroud)

如果您需要首先在 PATH 运行中使用 ruby​​:

$ echo 'export PATH="/usr/local/opt/ruby/bin:$PATH"' >> /Users/xxx/.bash_profile
Run Code Online (Sandbox Code Playgroud)

为了让编译器找到 ruby​​,您可能需要设置:

$ export LDFLAGS="-L/usr/local/opt/ruby/lib"
$ export CPPFLAGS="-I/usr/local/opt/ruby/include"
Run Code Online (Sandbox Code Playgroud)

按照说明设置 PATH。现在您将看到已安装的 Ruby。确保将“xxx”替换为您的用户名。

$ echo 'export PATH="/usr/local/opt/ruby/bin:$PATH"' >> /Users/xxx/.bash_profile
$ echo 'export LDFLAGS="-L/usr/local/opt/ruby/lib"' >> ~/.bash_profile
$ echo 'export CPPFLAGS="-I/usr/local/opt/ruby/include"' >> ~/.bash_profile

$ source ~/.bash_profile
Run Code Online (Sandbox Code Playgroud)

最后,确保您的 PATH 到位。

$ ruby -v
ruby 2.7.1p83 (2020-03-31 revision a0c7c23c9c) [x86_64-darwin18]
$ which ruby
/usr/local/opt/ruby/bin/ruby
Run Code Online (Sandbox Code Playgroud)

你可以走了!确保通过指定保存目的地进行安装,如下所示。

$ sudo gem install -n /usr/local/bin cocoapods
Run Code Online (Sandbox Code Playgroud)

  • 适用于我的 MacOS Catalina 10.15.7。太感谢了! (8认同)
  • 上帝保佑你我的朋友,我已经找了一个小时了 (6认同)
  • MacOs Big Sur 11.0.1 也为我工作。非常感谢,兄弟你救了我。我花了大约4个小时搜索了很多。你救了我,再次感谢。 (3认同)
  • 你是所有时代的英雄 (2认同)
  • 经过近两天的摸索,终于解决了这个问题! (2认同)
  • 谢谢你,拜拜,致敬。 (2认同)

Kev*_*vin 33

您需要安装Xcode的开发人员工具.最简单的方法是通过终端(这个问题)

xcode-select --install
Run Code Online (Sandbox Code Playgroud)

  • 您可以从https://developer.apple.com/downloads/index.action手动下载命令行工具 (2认同)

Mr *_*lis 19

如果你也看到error: active developer path..does not exist你可能也必须这样做

$ sudo xcode-select --reset
Run Code Online (Sandbox Code Playgroud)

  • 尝试了很多方法,手动设置 xode 命令行工具,更新 ruby​​,更新 macOS,但没有任何效果。但这个简单的命令解决了这个问题。多谢。 (2认同)
  • 我已经尝试了 100 种其他方法,但没有任何效果,但这个效果非常好。 (2认同)

小智 13

如果以上都不起作用,请按照以下步骤操作

  1. 须藤 xcode-select --switch /Library/Developer/CommandLineTools
  2. sudo gem 安装 cocoapods

如果你得到这样的错误'

ERROR:  While executing gem ... (Gem::FilePermissionError)
    You don't have write permissions for the /usr/bin directory
Run Code Online (Sandbox Code Playgroud)

.'

然后转到第 3 步

  1. $ sudo gem install -n /usr/local/bin cocoapods


小智 12

brew reinstall ruby
Run Code Online (Sandbox Code Playgroud)

将以下内容添加到您的路径中

export PATH="/usr/local/opt/ruby/bin:$PATH"
Run Code Online (Sandbox Code Playgroud)

如果需要,添加这些标志。

export LDFLAGS="-L/usr/local/opt/ruby/lib"
export CPPFLAGS="-I/usr/local/opt/ruby/include"
Run Code Online (Sandbox Code Playgroud)


小智 12

错误:安装 cocoapods 时出错:错误:无法构建 gem 本机扩展

首先安装 Ruby Version Manager rvm:

curl -L https://get.rvm.io | bash -s stable
Run Code Online (Sandbox Code Playgroud)

然后使用

source ~/.rvm/scripts/rvm 
Run Code Online (Sandbox Code Playgroud)

然后安装最新版本的 ruby​​:

rvm install ruby-2.7.2
Run Code Online (Sandbox Code Playgroud)

然后流动此(您的终端)输出下一步:

curl -L https://get.rvm.io | bash -s stable
Run Code Online (Sandbox Code Playgroud)

然后使用

source ~/.rvm/scripts/rvm 
Run Code Online (Sandbox Code Playgroud)

最后再次尝试安装 cocoapods:

sudo gem install cocoapods
Run Code Online (Sandbox Code Playgroud)


小智 10

首先更新您的 gem 工具。这可能需要一段时间

sudo gem update --system
Run Code Online (Sandbox Code Playgroud)

改用这个

sudo gem install -n /usr/local/bin cocoapods -v 1.8.4
Run Code Online (Sandbox Code Playgroud)

最新的 CocoaPods 1.10.0 将无法工作。

你可以验证版本

pod --version
Run Code Online (Sandbox Code Playgroud)


小智 9

这个命令拯救了我的一天

sudo gem install -n /usr/local/bin cocoapods -v 1.8.4
Run Code Online (Sandbox Code Playgroud)

要确认,请检查 pod 版本

pod --version
Run Code Online (Sandbox Code Playgroud)


ank*_*nka 8

我通过使用ruby 2.0(这是小牛队的首选方式)或更高版本来解决问题.如果您正在使用rvm,只需更改为正确的ruby:

rvm use ruby-2.0
Run Code Online (Sandbox Code Playgroud)

之后gem install cocoapods工作正常.更具体地说,我使用的是:

OSX 10.9.2
ruby-2.0.0-p353
cocoapods-0.32.1
Run Code Online (Sandbox Code Playgroud)


the*_*ker 7

我也有同样的问题。发生这种情况可能是因为您的计算机安装了旧版本的 ruby​​。所以你需要先更新你的红宝石。我的适用于 ruby​​ 2.6.3 版本

您需要首先打开终端并输入此代码

curl -L https://get.rvm.io | bash -s stable
Run Code Online (Sandbox Code Playgroud)

然后输入这个命令

rvm install ruby-2.6.3
Run Code Online (Sandbox Code Playgroud)

如果尚未安装,这将为您安装 ruby​​。之后只需将 ruby​​ 更新到新版本

rvm use ruby-2.6.3
Run Code Online (Sandbox Code Playgroud)

之后将 ruby​​ 2.6.3 设置为默认值

rvm --default use 2.6.3
Run Code Online (Sandbox Code Playgroud)

这可能会解决您的问题。您现在可以输入命令

sudo gem install cocoapods
Run Code Online (Sandbox Code Playgroud)

和命令

pod setup
Run Code Online (Sandbox Code Playgroud)


ave*_*rem 6

首先写“凯文”尝试在终端中运行:

xcode-select --install
Run Code Online (Sandbox Code Playgroud)

如果它不能帮助您从苹果开发者网站手动下载工具:

它帮助了我。


小智 5

我的解决方法:

首先,我有新的 mac os 10.15.7 和 Xcode

以前的解决方案也不适合我

我注意到 pod 安装在 Library 2.6.0 中,并决定需要更新:

步骤1

\curl -sSL https://get.rvm.io | bash -s stable --ruby
Run Code Online (Sandbox Code Playgroud)

好的!

然后我检查了版本:2.6.0 - 为什么?在安装 ruby​​ 后的最后一个字符串中,我注意到:

  • 要开始使用 RVM,您需要source /Users/abazhanov/.rvm/scripts/rvm 在所有打开的 shell 窗口中运行,在极少数情况下,您需要重新打开所有 shell 窗口。

好的,让我们一起做:

第2步

source /Users/abazhanov/.rvm/scripts/rvm
Run Code Online (Sandbox Code Playgroud)

然后我检查了版本:2.7.0 - 没问题!

步骤3

sudo gem install cocoapods 
Run Code Online (Sandbox Code Playgroud)

结果:安装了 34 个宝石

据我了解,新版本的 Pods 根本没有安装在旧版本的 Ruby 上


Ahm*_*aza 5

打开终端

\n
xcode-select --install\nsudo xcodebuild -license accept\ncurl -L\xc2\xa0https://get.rvm.io\xc2\xa0| bash -s stable\n
Run Code Online (Sandbox Code Playgroud)\n

关闭并重新打开终端

\n
rvm install ruby-2.6\n\nsudo gem install cocoapods\npod install \n
Run Code Online (Sandbox Code Playgroud)\n

完成后右键单击 android studio 左上角的项目,然后单击 Flutter -> Open IOS Module in Xcode

\n