CocoaPods не работает в macOS High Sierra


163

После обновления до macOS High Sierra CocoaPods не работает. Хотя заманчиво отойти от CocoaPods, к сожалению, сейчас это не так. Сообщение об ошибке ниже.

zsh: /Users/****/.gems/bin/pod: bad interpreter: /System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/bin: no such file or directory

Я понимаю, что ошибка связана с обновлением Ruby, но что можно исправить? Попытка заставить CocoaPods использовать новую версию ruby ​​приводит к другим ошибкам.

Edit: На данный момент я установил Ruby 2.0с rvm install 2.0.0и rvm use 2.0.0затем переустановил CocoaPods sudo gem install cocoapods. Кажется, сейчас работает.


Вы обновили инструменты командной строки?
матовая

@matt Да, sudo xcode-select -s /Applications/Xcode-beta.appи sudo xcode-select --installследовал за GUI оттуда.
Maciej Swic

Я думал о них здесь: developer.apple.com/download/more я часто нахожу, что внешние инструменты не работают, пока я их не установлю.
матовая

Ответы:


417

Согласно https://github.com/CocoaPods/CocoaPods/issues/6778 переустановка CocoaPods должна решить эту проблему:

sudo gem install cocoapods

2
работал и у меня, должен быть помечен как принятое решение
swalkner

17
Сработал простой «brew reinstall cocoapods» (так как он выполняет именно эту команду для вас). Спасибо за указание на это.
Маркус

Хотя это работает, это определенно должно быть проблемой CocoaPods, так как он не может найти обновленную версию Ruby. Вероятно, переустановка просто проверяет установку снова и, следовательно, "исправляет" это.
Hans Knöchel

gem install cocoapods - не генерирует неявное преобразование nil в строковую ошибку, но "brew reinstall cocoapods" выполнила свою работу. спасибо @Markus
Кришнан

gem install -n / usr / local / bin cocoapods помогает мне
Anupam Gupta

112

После обновления до macOS High Sierra исправьте его с помощью следующих команд:

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

как только это будет закончено, напишите ниже команду:

pod install

Это решение сработало для меня ... !!!


1
Я получил сообщение «ОШИБКА: при выполнении gem ... (Errno :: EPERM) Операция не разрешена @ rb_sysopen - /System/Library/Frameworks/Ruby.framework/Versions/2.3/usr/bin/gem» при выполнении первой команды, но запуск второго по-прежнему заставлял "pod install" работать. Спасибо.
Брайс Сэндлунд

Несмотря на «предупреждение», я все равно скажу здесь спасибо. Это было единственное, что сработало для меня. Простая переустановка cocoapods (несколько раз) не имела никакого значения, пока я не выполнил оба эти шага. Так что спасибо!
Хуйгир

Мне пришлось запустить обновление ruby ​​с помощью следующей команды:sudo gem update -n /usr/local/bin --system
Paul Popiel

Работал на меня (cocoapods 1.5.3).
атерешков

27

Я получил эту ошибку при установке CocoaPods

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

И я использовал это утверждение. Это сработало!

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

1
Это единственное решение, которое, казалось, сработало для меня. Спасибо
Дэн Болье,


9

Это решило мою проблему:

$ brew install ruby
$ gem install -n /usr/local/bin cocoapods

Пожалуйста, дайте краткое объяснение того, что делает опубликованный код, чтобы люди, которые не
знакомы

1
Люди, плохо знакомые с cocoapods, должны знать, как читать, как другие.
Тибо Ной

@MathieuVIALES, "brew install ruby" предполагает, что у вас уже есть упаковщик Homebrew ( brew.sh ). Затем эта команда устанавливает (или, возможно, технически переустанавливает ruby, так как на самом деле вам нужен ruby ​​для установки самого Homebrew). Следующая строка "gem install -n / usr / local / bin cocoapods" переустанавливает программу CocoaPod (подробнее на cocoapods.org ).
Эдди Эдди Эдди


6

Поэтому я столкнулся с этой проблемой и после обновления до High Sierra, и, похоже, произошли некоторые изменения в расположении файла, к которому обращался фреймворк ruby.

Вы можете решить это с помощью,

sudo gem install cocoapods

а затем обновить стручки, а также для обеспечения безопасности мер

pod repo update 

и наконец

pod install

чтобы файл pod снова заработал.

Надеюсь, это поможет :)


5

Попробуйте использовать

sudo gem update --system

Перед

sudo gem install cocoapods

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



5

Процесс установки Cocoapods:

  1. sudo gem install cocoapods (если у вас есть какие-либо проблемы с cocoapds, обновите файл gem)

  2. sudo gem update --system

  3. sudo gem install cocoapods


4

Для меня мне пришлось:

gem uninstall cocoapods
which pod

Это все еще показывало это в пути, таким образом я удалил это. Удостоверился, что это все еще не обнаружилось.

затем

gem install cocoapods

В заключение ! Удаление старого исполняемого файла pod перед установкой cocoapods работало на меня
Seb Fanals

4

Перейти к терминалу ...

шаг 1). sudo gem установить cocoapods

после завершения установки какао

шаг 2). обновление репо

Завершенный


3

Я также столкнулся с этой ошибкой после установки High Sierra.

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

Я использовал следующее утверждение, определенное Danh Huynh (см. Выше), и оно сработало!

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

1
Это просто повторение этого существующего ответа , не так ли?
Пан

это исправило это для меня
MiMo

3

MacOS High Sierra по умолчанию использует ruby ​​2.3. После обновления некоторые старые рубиновые самоцветы могут работать неправильно. Эта проблема возникает у меня, когда я запускаю команду bundle (bundler является гемом ruby; у него есть утилита под названием bundle).

Итак, чтобы уточнить, любые старые рубиновые гемы (cocoapods, bundler и т. Д.), Которые пытаются получить доступ к ruby ​​2.0, потерпят неудачу.

Решение состоит в том, чтобы переустановить эти старые драгоценные камни в каталог, где у вас есть права на запись.

Для кокоподов

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

сделает свое дело.

При желании вы можете обновить систему гемов, если вам нравится beforeустановка:

sudo gem update --system

Это может подсказать вам, что обновление не удалось. Но на самом деле, если вы наберете:

gem --version

Вы можете видеть, что обновление прошло успешно.

Для сборщиков или других драгоценных камней попробуйте сделать то же самое:

sudo gem install gem-to-install(for example, bundler) -n /usr/local/bin

О -nварианте. Не пропустите это. Вы можете проверить документацию по драгоценным камням, если хотите.

Итак, решение заключается reinstalling the old gemв правильном каталоге.


1

Пока я делаю то же самое, я получил еще одну ошибку, говоря, что

ОШИБКА: при выполнении gem ... (Gem :: FilePermissionError) У вас нет разрешения на запись в каталог /Library/Ruby/Gems/2.3.0.

Тогда я сделал это и работал нормально.

sudo gem uninstall cocoapods

sudo gem install cocoapods

1

Была такая же проблема, разрешение:

  1. Переустановите рубин

    brew install ruby

  2. Переустановите Какао Стручки

    sudo gem install cocoapods


1

Это распространенная проблема при обновлении до Mac OSX High Sierra.

Исправить это просто установка Cocoapods (снова):

sudo gem install cocoapods


0

После использования приведенной ниже команды на терминале я могу установить какао-бобы в своем проекте.

sudo gem install cocoapods --source http://rubygems.org

0

Я также столкнулся с этой проблемой, но исправил ее менее драматично, как различные переустановки / обновления. Только что обновили переменную окружения PATH, чтобы указать мою существующую (2.6.0) версию ruby.


0

У меня была такая же проблема после обновления до Каталины.

  1. Я обновил установку ruby, сначала установив brew и ruby, используя эти инструкции. https://gorails.com/setup/osx/10.15-catalina (но только рубин, а не рельсы и т. д.)

  2. Затем я переустановил cocoapods, используя инструкции выше.

    sudo gem установить cocoapods

Тогда после всего этого я все же получил ошибку выше. Затем я набрал 'zsh', чтобы создать новую оболочку и получить настройки конфигурации в файле ~ / .zshrc. После этого команда «pod update» снова заработала.


0

Sudo-less .zhs-дружественное решение

Современные macOS не рекомендуют использовать sudoи переходить с bash на zsh, поэтому этот ответ может быть полезен, если вы не собираетесь бороться с модой.

  1. Убедитесь, что .zshenvсуществует по touch ~/.zshenvкоманде. Настройте среду RubyGems, добавив следующие строки:

    export GEM_HOME=$HOME/.gem
    export PATH=$GEM_HOME/bin:$PATH

    Не забудьте перезапустить Терминал.

  2. Беги gem install cocoapods.

0
If cannot install new version cocoapods, example below:
1. Please remove Command line tools
sudo rm -rf /Library/Developer/CommandLineTools
2. Install new Command line tools version
sudo xcode-select --install
3. after installing run below command
open /Library/Developer/CommandLineTools/Packages/macOS_SDK_headers_for_macOS_10.14.pkg
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.