O CocoaPods não funciona no macOS High Sierra


162

Após a atualização para o macOS, o High Sierra CocoaPods não está funcionando. Embora seja tentador se afastar do CocoaPods, infelizmente não está no escopo no momento. A mensagem de erro está abaixo.

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

Percebo que o erro decorre da atualização do Ruby, mas qual é a correção das facilidades? Tentar fazer com que o CocoaPods use a nova versão ruby ​​gera outros erros.

Edit: Por enquanto eu instalei Ruby 2.0com rvm install 2.0.0e rvm use 2.0.0e CocoaPods reinstalado sudo gem install cocoapods. Parece estar funcionando agora.


Você atualizou as ferramentas de linha de comando?
— Matt

@ Matt Sim, sudo xcode-select -s /Applications/Xcode-beta.appe sudo xcode-select --installseguiram o GUI de lá.
— Maciej Swic 06/06/19

Eu estava pensando nos seguintes: developer.apple.com/download/mais Costumo encontrar ferramentas externas que não funcionam até instalá-las.
— Matt

Respostas:


416

De acordo com https://github.com/CocoaPods/CocoaPods/issues/6778, a reinstalação do CocoaPods deve resolver esse problema:

sudo gem install cocoapods

2
trabalhou para mim também, deve ser marcado como solução aceita
— swalkner

17
Um simples "brew reinstalar cocoapods" funcionou (pois executa esse comando exato para você). Obrigado por apontar isso.
— Markus

Embora isso funcione, definitivamente deve ser um problema do CocoaPods, pois não é possível localizar a versão atualizada do Ruby. Provavelmente, reinstalá-lo apenas verifica a instalação novamente e, portanto, "corrige".
— Hans Knöchel

gem install cocoapods - não gera conversão implícita de erro nulo em cadeia, mas "brew reinstalar cocoapods" fez o trabalho. Obrigado @Markus
— krishnan

gem install -n / usr / CocoaPods / bin locais me ajuda
— Anupam Gupta

112

Após a atualização para o macOS High Sierra, conserte-o com os seguintes comandos:

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

Uma vez finalizado, escreva abaixo o comando:

pod install

Esta solução funcionou para mim ... !!!


1
Eu recebi "ERRO: Ao executar a gem ... (Errno :: EPERM) Operação não permitida @ rb_sysopen - /System/Library/Frameworks/Ruby.framework/Versions/2.3/usr/bin/gem" ao executar o primeiro comando, mas a execução do segundo ainda fez o "pod install" funcionar. Obrigado.
— perfil completo de Bryce Sandlund

Apesar do "aviso", vou agradecer aqui de qualquer maneira. Essa foi a única coisa que funcionou para mim. Simplesmente reinstalar os cocoapods (várias vezes) não fez diferença até que eu fiz essas duas etapas. Então - obrigado!
— huygir

Eu tive que executar a atualização ruby ​​através do seguinte comando:sudo gem update -n /usr/local/bin --system
— Paul Popiel

Trabalhou para mim (cocoapods 1.5.3).
— Atereshkov 07/07

27

Eu recebi esse erro ao instalar o CocoaPods

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

E eu usei essa afirmação. Funcionou!

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

1
Esta é a única solução que parecia funcionar para mim. Obrigado
— Dan Beaulieu

12

Isso funcionou para mim, embora eu tivesse que fazer

sudo gem install cocoapods

9

Isso resolveu meu problema:

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

Por favor, dar uma breve explicação sobre o que o código postado faz para que as pessoas que são novas para esta tecnologia tem uma mudança de entender e re-utilizar a sua resposta :-)
— Mathieu VIALES

1
Pessoas novas em cocoapods devem saber ler como as outras.
— Thibaut noah #:

@MathieuVIALES, o "brew install ruby" assume que você já possui o empacotador Homebrew ( brew.sh ). Esse comando é instalado (ou provavelmente reinstala tecnicamente o ruby, pois você realmente precisa do ruby ​​para instalar o Homebrew). A próxima linha "gem install -n / usr / local / bin cocoapods" reinstala o programa CocoaPod (mais em cocoapods.org ).
— Eddie Eddie Eddie

8

Basta executar o comando abaixo:

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

6

Então, eu também tive esse problema depois de atualizar para o High Sierra, e parece que houve algumas alterações em um local do arquivo que a estrutura ruby ​​estava acessando.

Você pode resolvê-lo usando o,

sudo gem install cocoapods

e atualize os pods, bem como para medidas seguras

pod repo update 

e finalmente

pod install

para fazer o arquivo pod funcionar novamente.

Espero que isso ajude :)


5

Tente usar

sudo gem update --system

Antes

sudo gem install cocoapods

Isso funcionou para mim


5

Isso funciona para mim:

brew link --overwrite cocoapods

5

Processo de instalação dos Cocoapods:

  1. sudo gem install cocoapods (se você tiver algum problema cocoapds, atualize o arquivo gem)

  2. sudo gem update --system

  3. sudo gem install cocoapods


4

Para mim, eu tive que:

gem uninstall cocoapods
which pod

Ainda mostrava no caminho, então eu apaguei isso. Garantiu que ainda não aparecesse.

Então

gem install cocoapods

Finalmente ! Excluindo velho executável pod antes CocoaPods instalação funcionou para mim
— Seb Fanals

4

Vá para o Terminal ...

passo 1). sudo gem instalar cocoapods

após a conclusão da instalação de vagens de cacau,

passo 2). atualização de repo pod

Concluído


3

Eu também encontrei esse erro após a instalação High Sierra.

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

Eu usei a seguinte declaração identificada por Danh Huynh (veja acima) e funcionou!

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

1
Isso é apenas uma repetição dessa resposta existente , não é?
— Pang

este fixa-lo para mim
— MiMo

3

O MacOS High Sierra usa o ruby ​​2.3 por padrão. Após a atualização, algumas gemas ruby ​​antigas podem não funcionar corretamente. Esse problema ocorre quando executei o comando bundle (o bundler é uma gema ruby; ele possui um utilitário chamado bundle).

Portanto, para esclarecer, todas as antigas gemas de rubi (cocoapods, bundler etc.) que estão tentando acessar o ruby ​​2.0 falharão.

A solução é reinstalar as gemas antigas em um diretório em que você tem permissão para escrever.

Para cocoapods,

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

fará o truque.

Opcionalmente, você pode atualizar seu sistema gem se gostar beforeda instalação:

sudo gem update --system

Isso pode indicar que a atualização falhou. Mas, na verdade, se você digitar:

gem --version

Você pode ver que a atualização foi bem-sucedida.

Para bundler ou outras gemas, tente fazer o mesmo:

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

Sobre a -nopção Não perca isso. Você pode verificar a documentação da gema, se quiser.

Portanto, a solução está voltada reinstalling the old gempara um diretório adequado.


1

Enquanto estou fazendo o mesmo, recebi outro erro dizendo que

ERRO: Ao executar o gem ... (Gem :: FilePermissionError) Você não tem permissões de gravação para o diretório /Library/Ruby/Gems/2.3.0.

Então eu fiz isso e funcionou bem.

sudo gem uninstall cocoapods

sudo gem install cocoapods

1

Teve um mesmo problema, resolução:

  1. Reinstale o ruby

    brew install ruby

  2. Reinstalar os vagens de cacau

    sudo gem install cocoapods


1

Esse é um problema comum quando atualizado para o Mac OSX High Sierra.

Correção é simplesmente instalar Cocoapods (novamente):

sudo gem install cocoapods

1

Executando isso no terminal funcionou para mim:

sudo gem install cocoapods

0

Depois de usar o comando abaixo no terminal, sou capaz de instalar vagens de cacau no meu projeto.

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

0

Também enfrentei esse problema, mas o corrigi de maneira menos dramática, pois várias reinstalações / atualizações. Atualizei a variável de ambiente PATH para indicar minha versão existente do ruby ​​(2.6.0).


0

Eu tive o mesmo problema depois de atualizar para a Catalina.

  1. Atualizei a instalação do ruby ​​instalando primeiro o brew e o ruby ​​usando estas instruções. https://gorails.com/setup/osx/10.15-catalina (mas apenas ruby, não trilhos, etc.)

  2. Então eu reinstalei os cocoapods usando as instruções acima.

    sudo gem instalar cocoapods

Depois de tudo o que eu ainda recebi o erro acima. Então digitei 'zsh' para gerar um novo shell e puxar as definições de configuração no arquivo ~ / .zshrc. Após esse comando 'pod update', funcionou novamente.


0

Solução sem sudo .zhs

O macOS moderno desencoraja o uso sudoe a alternância do bash para o zsh, portanto, essa resposta pode ser útil se você não quiser lutar com a moda.

  1. Garanta que .zshenvexista por touch ~/.zshenvcomando. Configure o ambiente RubyGems adicionando as seguintes linhas:

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

    Não se esqueça de relançar o Terminal.

  2. Corra 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
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.