Estou usando o macOS Mojave e quando tento instalar os cocoapods usando o gem, estou recebendo o seguinte erro.
Construindo extensões nativas. Isso pode demorar um pouco ... ERRO: Erro ao instalar cocoapods: ERRO: Falha ao criar a extensão nativa gem.
current directory: /Library/Ruby/Gems/2.3.0/gems/ffi-1.12.2/ext/ffi_c
/System/Library/Frameworks/Ruby.framework/Versions/2.3/usr/bin/ruby -r ./siteconf20200302-707-1iveybq.rb extconf.rb mkmf.rb não pode encontrar arquivos de cabeçalho para ruby em / System / Library /Frameworks/Ruby.framework/Versions/2.3/usr/lib/ruby/include/ruby.h
extconf falhou, código de saída 1
Os arquivos gem permanecerão instalados em /Library/Ruby/Gems/2.3.0/gems/ffi-1.12.2 para inspeção. Resultados registrados em /Library/Ruby/Gems/2.3.0/extensions/universal-darwin-18/2.3.0/ffi-1.12.2/gem_make.out
Este erro ocorre quando eu executo os seguintes comandos.
sudo gem install cocoapods
sudo gem install -n /usr/local/bin cocoapods
Já instalei as ferramentas de linha de comando xcode e recebo a seguinte mensagem quando executo xcode-select --install
xcode-select: error: as ferramentas de linha de comando já estão instaladas, use "Atualização de software" para instalar as atualizações
Também concordei em xcode os contratos de licença com o comando sudo xcodebuild -license
O log de erros /Library/Ruby/Gems/2.3.0/extensions/universal-darwin-18/2.3.0/ffi-1.12.2/gem_make.out
fornece o seguinte
diretório atual: /Library/Ruby/Gems/2.3.0/gems/ffi-1.12.2/ext/ffi_c /System/Library/Frameworks/Ruby.framework/Versions/2.3/usr/bin/ruby -r ./siteco $ mkmf.rb não pode encontrar arquivos de cabeçalho para ruby em /System/Library/Frameworks/Ruby.fra$
extconf falhou, código de saída 1
O que faço para corrigir esse problema?
ruby --version
na linha de comandoRespostas:
A resposta para isso pode ser encontrada aqui aqui, embora não esteja relacionada a esta pergunta. Abaixo está um trecho da resposta que funciona melhor.
Para o Xcode 11 no macOS 10.14 , isso pode acontecer mesmo após a instalação do Xcode e da instalação de ferramentas de linha de comando e da aceitação da licença com
O problema é que o Xcode 11 envia o SDK do macOS 10.15, que inclui cabeçalhos para o ruby2.6, mas não para o ruby2.3 do macOS 10.14. Você pode verificar se esse é o seu problema executando
que no macOS 10.14 com Xcode 11 imprime o caminho inexistente
No entanto, o Xcode 11 instala um macOS 10.14 SDK dentro
/Library/Developer/CommandLineTools/SDKs/MacOS10.14.sdk
. Não é necessário poluir os diretórios do sistema instalando os arquivos de cabeçalho antigos, conforme sugerido em outras respostas. Em vez disso, selecionando esse SDK, os cabeçalhos ruby2.3 apropriados serão encontrados:Agora, isso deve ser impresso corretamente
Da mesma forma,
gem install
deve funcionar enquanto esse SDK estiver selecionado.Para voltar a usar o Xcode 11 SDK atual, use
fonte
sudo xcode-select --switch / Biblioteca / Desenvolvedor / CommandLineTools
ruby -rrbconfig -e 'coloca RbConfig :: CONFIG ["rubyhdrdir"]'
fonte
ruby -rrbconfig -e 'puts RbConfig::CONFIG["rubyhdrdir"]'
para descobrir sua configuração de ruby./Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.15.sdk/System/Library/Frameworks/Ruby.framework/Versions/2.3/usr/include/ruby-2.3.0
você deve corrigir a configuração executando o próximo passo.sudo xcode-select --switch /Library/Developer/CommandLineTools
ruby -rrbconfig -e 'puts RbConfig::CONFIG["rubyhdrdir"]'
novamente para ver se o caminho mudou./Library/Developer/CommandLineTools/SDKs/MacOSX10.14.sdk/System/Library/Frameworks/Ruby.framework/Versions/2.3/usr/include/ruby-2.3.0
Então você pode solicitar
gem install
a instalação de cocoapods!fonte