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. Кажется, сейчас работает.

Maciej Swic
источник
Вы обновили инструменты командной строки?
матовая
@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
zeisi
источник
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
Это единственное решение, которое, казалось, сработало для меня. Спасибо
Дэн Болье,
12

Это сработало для меня, хотя я должен был сделать

sudo gem install cocoapods
Эндрю Смит
источник
9

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

$ brew install ruby
$ gem install -n /usr/local/bin cocoapods
Đorđe Nilović
источник
Пожалуйста, дайте краткое объяснение того, что делает опубликованный код, чтобы люди, которые не
знакомы
1
Люди, плохо знакомые с cocoapods, должны знать, как читать, как другие.
Тибо Ной
@MathieuVIALES, "brew install ruby" предполагает, что у вас уже есть упаковщик Homebrew ( brew.sh ). Затем эта команда устанавливает (или, возможно, технически переустанавливает ruby, так как на самом деле вам нужен ruby ​​для установки самого Homebrew). Следующая строка "gem install -n / usr / local / bin cocoapods" переустанавливает программу CocoaPod (подробнее на cocoapods.org ).
Эдди Эдди Эдди
8

Просто запустите команду ниже:

sudo gem install -n /usr/local/bin cocoapods
Харшал Вани
источник
6

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

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

sudo gem install cocoapods

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

pod repo update 

и наконец

pod install

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

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

Т. Хильдгаард
источник
5

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

sudo gem update --system

Перед

sudo gem install cocoapods

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

Дэвид
источник
5

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

brew link --overwrite 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
djunod
источник
В заключение ! Удаление старого исполняемого файла 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
kgangadhar
источник
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
Himanth
источник
1

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

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

    brew install ruby

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

    sudo gem install cocoapods

Антон Ерегин
источник
1

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

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

sudo gem install cocoapods
Шобхит С
источник
1

Запуск этого на терминале работал для меня:

sudo gem install cocoapods
Ануй Тайал
источник
0

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

sudo gem install cocoapods --source http://rubygems.org
Сонам ​​маниар
источник
0

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

user1575878
источник
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
siddhant
источник