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.

Maciej Swic
fonte
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
zeisi
fonte
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 ... !!!

mital solanki
fonte
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
Danh Huynh
fonte
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
Andrew Smith
fonte
9

Isso resolveu meu problema:

$ brew install ruby
$ gem install -n /usr/local/bin cocoapods
Đorđe Nilović
fonte
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
Harshal Wani
fonte
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 :)

T. Hyldgaard
fonte
5

Tente usar

sudo gem update --system

Antes

sudo gem install cocoapods

Isso funcionou para mim

David
fonte
5

Isso funciona para mim:

brew link --overwrite cocoapods
Yun CHEN
fonte
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

Sheshu Solo
fonte
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
djunod
fonte
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

Azaharuddin Mohammad
fonte
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
kgangadhar
fonte
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.

Jiang Wang
fonte
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
Himanth
fonte
1

Teve um mesmo problema, resolução:

  1. Reinstale o ruby

    brew install ruby

  2. Reinstalar os vagens de cacau

    sudo gem install cocoapods

Anton Eregin
fonte
1

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

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

sudo gem install cocoapods
Shobhit C
fonte
1

Executando isso no terminal funcionou para mim:

sudo gem install cocoapods
ANUJ TAYAL
fonte
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
Sonam Maniar
fonte
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).

user1575878
fonte
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.

Larry Ricker
fonte
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.
kelin
fonte
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
fonte