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

时间:2014-01-05 21:42:50

标签: ios osx-mavericks cocoapods

我正在尝试将cocoapods安装到运行OSX 10.9.1(新版本的小牛)的macbook pro中,并在类型gem install cocoapods之后,我收到以下错误:

    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

任何帮助都会很棒。 提前谢谢。

33 个答案:

答案 0 :(得分:67)

运行以下命令

 brew cleanup -d -v 

然后在命令下面运行

brew install cocoapods 

注意:如果看到链接失败,请运行brew link cocoapods

这就是为我解决的方法

答案 1 :(得分:56)

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

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

现在使用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.

如果您需要先在运行的PATH中使用红宝石:

$ echo 'export PATH="/usr/local/opt/ruby/bin:$PATH"' >> /Users/xxx/.bash_profile

要使编译器找到红宝石,您可能需要设置:

$ export LDFLAGS="-L/usr/local/opt/ruby/lib"
$ export CPPFLAGS="-I/usr/local/opt/ruby/include"

按照说明设置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

最后,确保您的PATH到位。

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

你很好!确保通过指定保存目标进行安装,如下所示。

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

答案 2 :(得分:32)

您需要安装Xcode的开发人员工具。最简单的方法是通过终端(this question

xcode-select --install

答案 3 :(得分:8)

brew reinstall ruby

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

export PATH="/usr/local/opt/ruby/bin:$PATH"

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

export LDFLAGS="-L/usr/local/opt/ruby/lib"
export CPPFLAGS="-I/usr/local/opt/ruby/include"

答案 4 :(得分:8)

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

sudo gem update --system

改用这个

sudo gem install -n /usr/local/bin cocoapods -v 1.8.4

最新的 CocoaPods 1.10.0 无法运行。

您可以使用

验证版本
pod --version

答案 5 :(得分:8)

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

rvm use ruby-2.0

之后gem install cocoapods正常工作。更具体地说,我正在使用:

OSX 10.9.2
ruby-2.0.0-p353
cocoapods-0.32.1

答案 6 :(得分:4)

首先写作&#34; Kevin&#34;尝试在终端中运行:

xcode-select --install

如果它无法帮助您从Apple开发人员site手动下载工具:

它帮助了我。

答案 7 :(得分:3)

我也遇到了同样的问题。这可能是因为您的计算机具有较旧版本的 ruby​​。所以你需要先更新你的ruby。我的适用于 ruby​​ 2.6.3 版本

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

curl -L https://get.rvm.io | bash -s stable

然后把这个命令

rvm install ruby-2.6.3

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

rvm use ruby-2.6.3

此后,只需将 ruby​​ 2.6.3 设为默认

rvm --default use 2.6.3

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

sudo gem install cocoapods

和命令

pod setup

答案 8 :(得分:2)

这个命令拯救了我的一天

<块引用>

sudo gem install -n /usr/local/bin cocoapods -v 1.8.4

待确认检查 pod 版本

<块引用>

pod --version

答案 9 :(得分:2)

打开终端

xcode-select --install
sudo xcodebuild -license accept
curl -L https://get.rvm.io | bash -s stable

关闭并重新打开终端

rvm install ruby-2.6

sudo gem install cocoapods
pod install 

完成后在android studio左上角右击项目然后点击Flutter -> Open IOS Module in Xcode

答案 10 :(得分:2)

如果以上方法均无效,请按照以下步骤操作

  1. sudo xcode-select --switch / Library / Developer / CommandLineTools
  2. sudo gem install cocoapods

如果出现这样的错误 '

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

。'

然后转到步骤3

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

答案 11 :(得分:2)

我按照以下步骤解决问题:

1:rvm install 2.0.0

2:rvm列表  * ruby​​-1.9.3-p545 [x86_64] =&GT; ruby-2.0.0-p451 [x86_64]

3:rvm 2.0.0 -default

4:pod update

答案 12 :(得分:2)

有时问题是您的xcode工具版本太低。如果还没有运行,请尝试运行这些命令

sudo rm -rf /Library/Developer/CommandLineTools

xcode-select --install

sudo xcodebuild -license accept

open /Library/Developer/CommandLineTools/Packages/macOS_SDK_headers_for_macOS_10.14.pkg

答案 13 :(得分:2)

如果没有,请先安装Homebrew:https://brew.sh/index_pt-br

/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install.sh)"

第二,如果没有,请安装ruby: https://www.ruby-lang.org/pt/documentation/installation/

brew install ruby

您还可以按照以下步骤操作:https://gist.github.com/monicao/d372716cdfbb7e9cf692

然后,关闭终端,然后重新打开。

始终使用sudo安装cocoapods:

sudo gem install cocoapods

答案 14 :(得分:2)

在2020年为我工作(Mac OS Catalina)

xcode-select --install

sudo gem install -n /usr/local/bin cocoapods

答案 15 :(得分:1)

我的解决方法:

首先,我有新的Mac OS 10.15.7和Xcode

以前的解决方案都没有对我有用

我注意到pods安装在Library 2.6.0中,并决定需要对其进行更新:

第1步

\curl -sSL https://get.rvm.io | bash -s stable --ruby

好吧!

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

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

好的,让我们做吧:

第2步

source /Users/abazhanov/.rvm/scripts/rvm

然后我检查了版本:2.7.0-可以!

第3步

sudo gem install cocoapods 

结果:安装了34颗宝石

我知道Pods的新版本根本没有安装在旧版本的Ruby上

答案 16 :(得分:1)

我遇到了同样的问题,尽管我有最新版本的xcode命令行工具。

如果您安装了自制软件,请执行brew install apple-gcc42。这立即为我解决了。

答案 17 :(得分:1)

我遇到了类似的错误,这是我第一次在macOS Catalina上安装CocoaPods。最后通过安装Xcode命令行工具进行管理。在终端中输入以下命令。 (截至今天,此文件约为248.3mb)

xcode-select --install

应出现一个对话框,要求您批准下载和安装。下载可能需要一段时间,具体取决于您的互联网速度。一旦安装成功。尝试在终端中使用以下命令再次安装CocoaPods。

sudo gem install cocoapods

完成后,使用以下命令确认安装是否成功

pod setup --verbose

答案 18 :(得分:1)

我遇到了同样的问题,我只是将/usr/local/include文件夹更改为/usr/local/include_old

答案 19 :(得分:1)

好的,

我有同样的问题。试图将pod安装到我的项目但从未解决过。我更新了Xcode,更新了命令行工具,重新安装了cocoapods ......几乎所有东西。

坐在我的屁股上,在终端中写下pod显示了一个列出可用命令的屏幕。

我读了所有这些并注意到了命令

pod setup

哪个

+ setup               Setup the CocoaPods environment

在这行代码之后,我的问题得到解决。

我希望我的解决方案可以帮助像我这样有困难的其他人。

答案 20 :(得分:0)

以前的解决方案都不适合我...

我的情况是全新安装了macOS Catalina + XCODE;

碰巧,我必须在安装可可豆荚之前先运行Xcode(在第一次运行时,Xcode使用工具安装机器);

那之后,可可豆荚就很好了。

答案 21 :(得分:0)

在iOS目录上运行pod install后,尝试在Flutter应用中设置GoogleMaps时,发生了同样的初始问题。

运行pod install时出现以下错误:

zsh: /usr/local/bin/pod: bad interpreter: /System/Library/Frameworks/Ruby.framework/Versions/2.3/usr/bin/ruby: no such file or directory

接下来,在运行sudo gem install cocoapods之后,导致了另一个错误,类似于在ERROR: Error installing cocoapods: ERROR: Failed to build gem native extension上显示的错误。

ERROR:  Error installing cocoapods:
    ERROR: Failed to build gem native extension.

kevin建议安装运行以下代码的Xcode开发人员工具:

xcode-select --install

在强调需要安装工具的同时,系统再次产生与运行pod install命令时相同的错误。

通过删除并重新安装工具来刷新工具成为下一个目标。 使用以下命令删除工具:

rm -rf /Library/Developer/CommandLineTools

然后再次使用以下命令安装xcode开发人员工具:

xcode-select --install

然后,sudo gem install cocoapodspod install成功运行。

答案 22 :(得分:0)

当我尝试通过运行命令“ sudo gem install cocoapods”来安装cocoapods时遇到了这个问题,但是使用brew能够毫无问题地安装它

答案 23 :(得分:0)

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

$ sudo xcode-select --reset

答案 24 :(得分:0)

这应该使木桶和核心回购都变得不浅。

brew tap homebrew/cask

紧随其后...

brew tap homebrew/core

答案 25 :(得分:0)

我收到此错误并且必须完全重新安装cocoapods来修复它。终于工作了。也许这个解决方案适合其他任何人。

sudo rm -rf home_folder/.cocoapods/

之后,又做了

pod setup

并从零开始安装我的库,一切正常。

希望它有所帮助!

答案 26 :(得分:0)

我有同样的问题,cocoapods 没有安装,浪费了 3 到 4 个小时来解决这个错误,最后我得到了解决方案,

步骤1:打开终端并运行“brew重新安装ruby” 终端将指导您如何导出路径 step2:然后运行“sudo gem install cocoapods”

答案 27 :(得分:0)

尝试使用 brew 安装 cocoapods。我在这里找到它Apple

试试

brew install cocoapods

它会安装 cocoapods 而不会出现此错误。

enter image description here

答案 28 :(得分:0)

我的配置中有多个环境,这导致rvm干扰安装时出现问题。一旦检测到ruby 2.x,安装就可以了。

对于我的环境,我做了以下事情: 1. xcode-select --install 2. rvm implode(注意 - 太激烈 - 你可能不需要这样做,我没有使用旧的ruby安装,我通过rvm卸载它们逐个删除然后使用rvm implode 3. gem install cocoapods

这次最后一个命令没有任何问题。

答案 29 :(得分:0)

在尝试了各种事情后,Tosin Sotannde 的方法对我有用 首先运行这个

sudo gem update --system

然后

sudo gem install -n /usr/local/bin cocoapods -v 1.8.4

答案 30 :(得分:0)

您必须使用终端中的命令安装命令行工具:

xcode-select --install

如果您收到的消息是&#34;无法安装该软件,因为它目前无法从软件更新服务器获得。&#34;,您必须从{手动下载命令行工具' {3}}网站。

答案 31 :(得分:0)

我在 macOS Catalina 上遇到了同样的问题。尽管使用 Homebrew 安装有效,但我还是很好奇为什么 gem install cocoapods 会失败,即使它是他们官方文档中首选或提到的安装方法。

我尝试了上面几乎所有的解决方案,也可能是其他一些解决方案,我在谷歌搜索问题时发现。

最后,今天我删除了 Xcode 12.4,我又重新安装了,实际上是出于其他原因。出于好奇,我再次尝试了 gem install cocoapods,现在成功了,并安装了 cocoapods,与官方文档中提到的方式相同。

答案 32 :(得分:0)

问题出在 Unity 之外。您需要运行终端并输入以下命令:

sudo gem install -n /usr/local/bin cocoapods
pod setup

这拯救了我的一天!