Ошибки при установке cocoapods с гемом - PullRequest
8 голосов
/ 02 марта 2020

Я использую macOS Mojave, и когда я пытаюсь установить cocoapods с помощью gem, я получаю следующую ошибку:

Сборка собственных расширений. Это может занять некоторое время ... ОШИБКА: Ошибка установки cocoapods: ОШИБКА: не удалось построить собственное расширение gem.

current directory: /Library/Ruby/Gems/2.3.0/gems/ffi-1.12.2/ext/ffi_c

/ Система / Библиотека / Каркасы / Ruby .framework / Версии / 2.3 / usr / bin / ruby -r ./siteconf20200302-707-1iveybq.rb extconf.rb mkmf.rb не может найти заголовочные файлы для ruby в /System/Library/Frameworks/Ruby.framework/Versions/2.3 /usr/lib/ruby/include/ruby.h

extconf не удалось, код выхода 1

Файлы Gem останутся установленными в /Library/Ruby/Gems/2.3.0/gems /ffi-1.12.2 для проверки. Результаты заносятся в /Library/Ruby/Gems/2.3.0/extensions/universal-darwin-18/2.3.0/ffi-1.12.2/gem_make.out

Эта ошибка возникает при запуске следующие команды.

sudo gem install cocoapods

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

Я уже установил инструменты командной строки xcode и получаю следующее сообщение при запуске xcode-select --install

xcode-select: error: командная строка инструменты уже установлены, используйте «Обновление программного обеспечения» для установки обновлений

Я также согласился xcode лицензионных соглашений с командой sudo xcodebuild -license

Журнал ошибок в /Library/Ruby/Gems/2.3.0/extensions/universal-darwin-18/2.3.0/ffi-1.12.2/gem_make.out дает следующий

текущий каталог: /Library/Ruby/Gems/2.3.0/gems/ffi-1.12.2/ext/ffi_c /System/Library/Frameworks/Ruby.framework/Versions /2.3/usr/bin/ruby -r ./siteco$ mkmf.rb не может найти заголовочные файлы для ruby в /System/Library/Frameworks/Ruby.fra$

extconf ошибка, код выхода 1

Что мне сделать, чтобы решить эту проблему?

Ответы [ 3 ]

9 голосов
/ 20 марта 2020

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

Для Xcode 11 на macOS 10.14 это может произойти даже после установки Xcode и установки инструментов командной строки и принятия лицензии с

sudo xcode-select --install
sudo xcodebuild -license accept

Проблема в том, что Xcode 11 поставляется с MacOS 10.15 SDK, который включает заголовки для ruby2.6, но не для ruby2.3 в macOS 10.14. Вы можете убедиться, что это ваша проблема, запустив

ruby -rrbconfig -e 'puts RbConfig::CONFIG["rubyhdrdir"]'

, который в macOS 10.14 с Xcode 11 выводит несуществующий путь

/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.15.sdk/System/Library/Frameworks/Ruby.framework/Versions/2.3/usr/include/ruby-2.3.0

Однако Xcode 11 устанавливает macOS 10.14 SDK в /Library/Developer/CommandLineTools/SDKs/MacOS10.14.sdk. Нет необходимости загрязнять системные каталоги, устанавливая старые заголовочные файлы, как указано в других ответах. Вместо этого, выбрав этот SDK, будут найдены соответствующие заголовки ruby2.3:

sudo xcode-select --switch /Library/Developer/CommandLineTools
ruby -rrbconfig -e 'puts RbConfig::CONFIG["rubyhdrdir"]'

Теперь это должно правильно вывести

/Library/Developer/CommandLineTools/SDKs/MacOSX10.14.sdk/System/Library/Frameworks/Ruby.framework/Versions/2.3/usr/include/ruby-2.3.0

Аналогично, gem install должно работать, пока этот SDK

Чтобы вернуться к использованию текущего Xcode 11 SDK, используйте

sudo xcode-select --switch /Applications/Xcode.app
5 голосов
/ 25 марта 2020

sudo xcode-select --switch / Library / Developer / CommandLineTools

ruby -rrbconfig -e 'помещает RbConfig :: CONFIG ["rubyhdrdir"]'

1 голос
/ 24 апреля 2020
  1. Excute: ruby -rrbconfig -e 'puts RbConfig::CONFIG["rubyhdrdir"]', чтобы выяснить вашу ruby конфигурацию.
  2. Если вывод - несуществующий путь MacOSX10.15. Например: /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.15.sdk/System/Library/Frameworks/Ruby.framework/Versions/2.3/usr/include/ruby-2.3.0 Вы должны исправить конфигурацию, выполнив следующий шаг.
  3. Извините: sudo xcode-select --switch /Library/Developer/CommandLineTools
  4. Вы можете извинить: ruby -rrbconfig -e 'puts RbConfig::CONFIG["rubyhdrdir"]' еще раз, чтобы увидеть, изменился ли путь.
  5. Вывод /Library/Developer/CommandLineTools/SDKs/MacOSX10.14.sdk/System/Library/Frameworks/Ruby.framework/Versions/2.3/usr/include/ruby-2.3.0

Тогда вы можете извинить gem install, чтобы установить cocoapods!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...