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.