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.