Ошибка при установке CocoaPods - macOS BigSur

Я учусь программировать и пытаюсь установить Cocoapods, но получаю сообщение об ошибке sudo gem install cocoapods.

Вот что я получаю:

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

    current directory: /Library/Ruby/Gems/2.6.0/gems/ffi-1.13.1/ext/ffi_c
/System/Library/Frameworks/Ruby.framework/Versions/2.6/usr/bin/ruby -I /System/Library/Frameworks/Ruby.framework/Versions/2.6/usr/lib/ruby/2.6.0 -r ./siteconf20201006-615-fryp4a.rb extconf.rb
checking for ffi.h... *** 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
    --without-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=/System/Library/Frameworks/Ruby.framework/Versions/2.6/usr/bin/$(RUBY_BASE_NAME)
    --with-ffi_c-dir
    --without-ffi_c-dir
    --with-ffi_c-include
    --without-ffi_c-include=${ffi_c-dir}/include
    --with-ffi_c-lib
    --without-ffi_c-lib=${ffi_c-dir}/lib
    --enable-system-libffi
    --disable-system-libffi
    --with-libffi-config
    --without-libffi-config
    --with-pkg-config
    --without-pkg-config
/System/Library/Frameworks/Ruby.framework/Versions/2.6/usr/lib/ruby/2.6.0/mkmf.rb:467:in `try_do': The compiler failed to generate an executable file. (RuntimeError)
You have to install development tools first.
    from /System/Library/Frameworks/Ruby.framework/Versions/2.6/usr/lib/ruby/2.6.0/mkmf.rb:585:in `block in try_compile'
    from /System/Library/Frameworks/Ruby.framework/Versions/2.6/usr/lib/ruby/2.6.0/mkmf.rb:534:in `with_werror'
    from /System/Library/Frameworks/Ruby.framework/Versions/2.6/usr/lib/ruby/2.6.0/mkmf.rb:585:in `try_compile'
    from /System/Library/Frameworks/Ruby.framework/Versions/2.6/usr/lib/ruby/2.6.0/mkmf.rb:1109:in `block in have_header'
    from /System/Library/Frameworks/Ruby.framework/Versions/2.6/usr/lib/ruby/2.6.0/mkmf.rb:959:in `block in checking_for'
    from /System/Library/Frameworks/Ruby.framework/Versions/2.6/usr/lib/ruby/2.6.0/mkmf.rb:361:in `block (2 levels) in postpone'
    from /System/Library/Frameworks/Ruby.framework/Versions/2.6/usr/lib/ruby/2.6.0/mkmf.rb:331:in `open'
    from /System/Library/Frameworks/Ruby.framework/Versions/2.6/usr/lib/ruby/2.6.0/mkmf.rb:361:in `block in postpone'
    from /System/Library/Frameworks/Ruby.framework/Versions/2.6/usr/lib/ruby/2.6.0/mkmf.rb:331:in `open'
    from /System/Library/Frameworks/Ruby.framework/Versions/2.6/usr/lib/ruby/2.6.0/mkmf.rb:357:in `postpone'
    from /System/Library/Frameworks/Ruby.framework/Versions/2.6/usr/lib/ruby/2.6.0/mkmf.rb:958:in `checking_for'
    from /System/Library/Frameworks/Ruby.framework/Versions/2.6/usr/lib/ruby/2.6.0/mkmf.rb:1108:in `have_header'
    from extconf.rb:10:in `system_libffi_usable?'
    from extconf.rb:42:in `<main>'

To see why this extension failed to compile, please check the mkmf.log which can be found here:

  /Library/Ruby/Gems/2.6.0/extensions/universal-darwin-20/2.6.0/ffi-1.13.1/mkmf.log

extconf failed, exit code 1

Gem files will remain installed in /Library/Ruby/Gems/2.6.0/gems/ffi-1.13.1 for inspection.
Results logged to /Library/Ruby/Gems/2.6.0/extensions/universal-darwin-20/2.6.0/ffi-1.13.1/gem_make.out

Я знаю, что есть строчка, в которой говорится, что сначала нужно установить инструменты разработки, и сначала это было правдой. Затем я установил инструменты командной строки Xcode (мне пришлось делать это вручную, загружая их из Apple Developer, потому что строка xcode-select --install не работала), и снова попытался установить cocoapods. Но я получаю ту же ошибку даже после перезагрузки.

У него также есть маршрут для журнала, и вот что он говорит:

package configuration for libffi is not found
"xcrun clang -o conftest -I/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.15.sdk/System/Library/Frameworks/Ruby.framework/Versions/2.6/usr/include/ruby-2.6.0/universal-darwin20 -I/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.15.sdk/System/Library/Frameworks/Ruby.framework/Versions/2.6/usr/include/ruby-2.6.0/ruby/backward -I/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.15.sdk/System/Library/Frameworks/Ruby.framework/Versions/2.6/usr/include/ruby-2.6.0 -I. -D_XOPEN_SOURCE -D_DARWIN_C_SOURCE -D_DARWIN_UNLIMITED_SELECT -D_REENTRANT    -g -Os -pipe -DHAVE_GCC_ATOMIC_BUILTINS -DUSE_FFI_CLOSURE_ALLOC conftest.c  -L. -L/System/Library/Frameworks/Ruby.framework/Versions/2.6/usr/lib -L. -L/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX11.0.Internal.sdk/usr/local/lib     -lruby.2.6   "
In file included from conftest.c:1:
In file included from /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.15.sdk/System/Library/Frameworks/Ruby.framework/Versions/2.6/usr/include/ruby-2.6.0/ruby.h:33:
/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.15.sdk/System/Library/Frameworks/Ruby.framework/Versions/2.6/usr/include/ruby-2.6.0/ruby/ruby.h:24:10: fatal error: 'ruby/config.h' file not found
#include "ruby/config.h"
         ^~~~~~~~~~~~~~~
/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.15.sdk/System/Library/Frameworks/Ruby.framework/Versions/2.6/usr/include/ruby-2.6.0/ruby/ruby.h:24:10: note: did not find header 'config.h' in framework 'ruby' (loaded from '/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/System/Library/Frameworks')
1 error generated.
checked program was:
/* begin */
1: #include "ruby.h"
2: 
3: int main(int argc, char **argv)
4: {
5:   return 0;
6: }
/* end */

Итак, я застрял. В настоящее время я использую macOS Big Sur Beta 9 и Xcode 12.0.1 (не бета).


person Max Sanchez    schedule 07.10.2020    source источник
comment
Я тоже борюсь с этой проблемой. Настоятельно не рекомендуется добавлять использование sudo для установки драгоценных камней. Вместо этого используйте 'gem install --user-install cocoapods', который установит драгоценные камни только для вашего пользователя, без использования рычага доступа. Кроме того, если вы используете zsh, вы можете добавить туда строки в свою конфигурацию, чтобы сделать установленные пользователем драгоценные камни доступными в терминале: gist.github.com/gelosi/392fdee919c53ae490c0ca0f1e80f819 Надеюсь, что это поможет решить часть проблемы   -  person Oleg Shanyuk    schedule 18.10.2020


Ответы (8)


У меня была такая же проблема (Catalina 10.15.7 и Xcode 12.3).

Я использовал homebrew вместо драгоценного камня:

brew install cocoapods
person Mikolaj    schedule 26.12.2020
comment
это работает и для Биг-Сура. - person abiieez; 09.07.2021
comment
Спасибо, у меня тоже сработало! :) - person Nirav Jain; 20.07.2021

Рубиновый фреймворк XCode, похоже, имеет проблему. Переустановите Xcode.app чистой последней версией, и запуск xcode-select --install или --select у меня не сработал.

Вот как мне удалось заставить его работать с XCode 12.2 и Catalina (10.15.7): https://stackoverflow.com/a/65481787/1534182

TL;DR)

cd /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX11.1.sdk/System/Library/Frameworks/Ruby.framework/Versions/2.6/usr/include/ruby-2.6.0/ruby
ln -sf ../../../../Headers/ruby/config.h

cd /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX11.1.sdk/System/Library/Frameworks/Ruby.framework/Versions/2.6/usr/include/ruby-2.6.0
ln -sf universal-darwin20 universal-darwin19

(отредактируйте исправленную опечатку в символической ссылке)

person Jongwook Choi    schedule 28.12.2020
comment
Спасибо, это именно то, что нужно было для macOS Catalina 10.15.7 и Xcode 12.4! - person faffaffaff; 04.02.2021
comment
Идеально. Больше ничего не работало, но создание этих символических ссылок помогло. В будущих версиях может потребоваться корректировка решения, чтобы оно соответствовало установленным версиям MacOS и Xcode. - person Louisvdw; 04.02.2021

Решите проблему, обновив Xcode до 12.2 в macOS Big Sur.

Затем запустите:

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

Потратил 5 часов, потому что думал, что это проблема драгоценного камня.

Успешно установите cocoapods

person Teddichiiwa    schedule 18.11.2020

Что ж, сегодня я смог, наконец, успешно установить Cocoapods, но это был странный процесс.

Во время обучения люди обычно советуют вам держаться подальше от бета-версий, и пока я работал со стабильной версией Xcode для AppStore, я работал с Big Sur B9; и это могло быть проблемой. Я полностью удалил Xcode 12.0.1, а затем загрузил бета-версию Xcode 12.2 из Apple Developer. Затем я загрузил и установил инструменты командной строки также для бета-версии 12.2 и снова запустил установку cocoapods в Терминале… и вуаля!

После установки и запуска бета-версии Xcode я смог установить и теперь работает нормально. Может быть, когда BigSur станет достоянием общественности, это решится? Потому что не всем нужно или нужно запускать бета-версии Xcode.

person Max Sanchez    schedule 07.10.2020
comment
Просто переход на бета-версию Xcode 12.2 исправил это для меня .sudo xcode-select --switch /Applications/Xcode-beta.app/Contents/Developer - person Joshua Olson; 09.11.2020
comment
Я использую Xcode 12.2 и все еще испытываю ту же проблему, но на macOS Catalina. - person Eye; 09.12.2020
comment
@Eye, пожалуйста, посмотрите мое альтернативное решение выше. - person Jongwook Choi; 28.12.2020

Я столкнулся с той же проблемой

$ sudo gem install cocoapods
...
checking for ffi.h... *** extconf.rb failed ***
Could not create Makefile due to some reason, probably lack of necessary
libraries and/or headers.
...

Исправлено обновлением версии Ruby до 2.7.2. Кредиты на https://stackoverflow.com/a/65033418/4982169

Я использую rbenv для управления версиями Ruby.

person Victor Dias    schedule 02.12.2020

или если вы уже установили стручки какао, просто запустите

варить установить коконоды

после отображения некоторого предупреждающего сообщения

Warning: cocoapods 1.10.1 is already installed, it's just not linked.

Чтобы связать эту версию, запустите: brew link cocoapods или

brew link - перезаписать cocoapods

это было действительно полезно для меня. Спасибо

person Hari Narayanan    schedule 09.04.2021

Это сработало для меня:

https://github.com/CocoaPods/CocoaPods/issues/10286#issuecomment-747512270

Цитировать:

  • Загрузите Инструменты командной строки 11.5 из Загрузки для разработчиков Apple
  • sudo rm -rf / Библиотека / Разработчик / CommandLineTools
  • Установите инструменты командной строки из .dmg / .pkg
  • sudo xcode-select --switch / Библиотека / Разработчик / CommandLineTools
  • [sudo] gem install [--user-install] cocoapods
  • sudo xcode-select --switch /Applications/Xcode.app/Contents/Developer
person Mohit    schedule 26.02.2021

Выше зол. может работать или не работать для всех, но просто убедитесь, что перепроверили инструменты командной строки. Он должен быть установлен, а не пустым.

введите описание изображения здесь

person user3305074    schedule 23.06.2021