Incapaz de usar xcodebuild no Mavericks com ferramentas de linha de comando instaladas

92

Eu instalei as ferramentas de linha de comando:

$ xcode-select --print-path
/Library/Developer/CommandLineTools

No entanto, quando algo tenta usar xcodebuild, recebo o seguinte erro:

$ /usr/bin/xcodebuild
xcode-select: error: tool 'xcodebuild' requires Xcode, but active developer directory '/Library/Developer/CommandLineTools' is a command line tools instance

No Mountain Lion, era possível usar isso sem instalar todo o Xcode, apenas as ferramentas de linha de comando. É possível fazer isso no Mavericks? Como posso fazer isso funcionar?

NB: Esta é uma instalação limpa do Mavericks.

Atualização: só para mostrar, eu tenho as ferramentas de linha de comando instaladas:

$ gcc --version
Configured with: --prefix=/Library/Developer/CommandLineTools/usr --with-gxx-include-dir=/usr/include/c++/4.2.1
Apple LLVM version 5.0 (clang-500.2.79) (based on LLVM 3.3svn)
Target: x86_64-apple-darwin13.0.0
Thread model: posix

fonte
1
Encontrando o mesmo problema aqui, tentando construir alguns módulos de nó. Esperançosamente, uma solução rápida está disponível.
rossipedia
Criei um problema em, node-gyppois essa é a origem do meu problema: github.com/TooTallNate/node-gyp/issues/341
Talvez você tenha que instalar o Xcode. É assim que meu gcc --version se parece Configurado com: --prefix = / Applications / Xcode.app / Contents / Developer / usr --with-gxx-include-dir = / Applications / Xcode.app / Contents / Developer / Platforms /MacOSX.platform/Developer/SDKs/MacOSX10.9.sdk/usr/include/c++/4.2.1 Apple LLVM versão 5.0 (clang-500.2.79) (baseado em LLVM 3.3svn) Destino: x86_64-apple-darwin13. 0.0 Modelo de rosca: posix
Martin Christmann
1
Talvez você esteja certo, apenas estranho que não era necessário no Mountain Lion com as ferramentas de linha de comando instaladas.
Eu suponho que você fez xcode-select --install. Com xcode-select --print-pathimpressões instaladas do Xcode/Applications/Xcode.app/Contents/Developer
mb21

Respostas:

63

Eu sei que esta é uma resposta tardia, mas no meu caso este comando resolveu o problema:

sudo xcode-select --switch /Applications/Xcode.app/Contents/Developer
Juanan
fonte
14
observe que a questão é sobre a construção com instalação de ferramentas de linha de comando. Ao mudar para o Xcode.app, você está construindo via Xcode (o que a questão está tentando evitar instalar).
bryanmac
23

Parece que o OSX mudou xcodebuildpara exigir XCodea instalação, onde antes funcionava corretamente apenas com as ferramentas de linha de comando OSX instaladas.

Resposta semi-relacionada antiga

Muitas pessoas encontraram isso com o Node. A ferramenta de construção do Node,, gypusa xcodebuildpara se preparar para compilar pacotes de nós. O Mavericks mudou o comportamento do xcodebuildpara que não funcione mais corretamente com o gyp. Isso está sendo corrigido no momento. Veja o problema do node-gyp

Depois que as alterações forem implantadas no NPM, você poderá instalar o novo node-gyppacote e compilar corretamente. Você também precisará atualizar sua versão do NPM assim que as alterações forem incorporadas ao NPM.

loganfsmyth
fonte
não tenho ideia de por que isso está vinculado ao nó, estou tentando construir outra coisa com o Xcode
zinking
exatamente, o xcodebuild ainda está disparando um erro quando você o chama da linha de comando ... Na verdade, baixei as ferramentas de linha de comando mais recentes do site de desenvolvedor
alexserver
16

Primeiro, vá para o localizador, depois selecione Aplicativos no painel esquerdo, depois procure por Xcode e verifique se seu nome é Xcode ou Xcode-Beta

Se o nome for Xcode-Beta, digite este comando no Terminal:

sudo xcode-select -switch /Applications/Xcode-Beta.app/Contents/Developer

Se o nome for Xcode, digite este comando:

sudo xcode-select -switch /Applications/Xcode.app/Contents/Developer

Espero que esta resposta possa ajudar para usuários com a versão Beta do Xcode

obrigado

Muhammed Irfan
fonte
9

Esse problema ocorria devido ao diretório do desenvolvedor selecionado pelo xcode apontar para /Library/Developer, que continha apenas a pasta CommandLineTools. Para tanto, a mensagem de erro é reclamar que o diretório não é igual ao Xcode.

Duas soluções testadas:

  1. (Re) Instale o Xcode.

  2. Aponte xcode-select para o Xcode Developer Directory usando o seguinte comando:

    sudo xcode-select -switch /Applications/Xcode.app/Contents/Developer

Referências:

Como corrigir erros como “xcode-select: error: tool 'xcodebuild' requer Xcode, mas o diretório de desenvolvedor ativo * BROKEN LINK *

xcode-select active developer directory error

carlodurso
fonte
Link 1 quebrado
anki
2

Reinstalei o Xcode da App Store, o que resolveu esse problema. Acho que minha instalação anterior não está completa.

zinking
fonte
1

Há também uma GUI para alterar o caminho das Ferramentas da Linha de Comando em Xcode> Preferências> Locais:

Xcode> Preferências> Locais

Eu só tive esse problema depois de atualizar para o Xcode 10.3, mantendo uma cópia mais antiga do 10.2.1 em uma subpasta em Aplicativos. Quando abri este painel Locais, a seleção de Ferramentas da Linha de Comando estava em branco, mas pude escolher entre as duas versões instaladas:

Lista suspensa de seleção de ferramentas de linha de comando

Eu costumo usar a opção GUI se estiver disponível em vez de copiar os sudocomandos do SO.

suite22
fonte
0

Se você usar XCode2: sudo xcode-select --switch / Applications / Xcode \ 2.app/Contents/Developer

Preste atenção no "\" para escapar do espaço.

Turibbio
fonte
0

Hoje tive esse problema e o problema era que eu estava usando uma instalação manual do xcode e tinha o arquivo denominado Xcode8.3.2.app em vez de Xcode.app. Renomear o aplicativo corrigiu o problema de reclamação do xcode-select. Isso parece indicar que o appname regular está em seu caminho de pesquisa, mas as variantes não.

AnneTheAgile
fonte
-3

AFAIK, ferramentas de linha de comando no Mavericks são instaladas em /Applications/Xcode.app/Contents/Developer, o que tende a implicar que o Xcode é necessário. Provavelmente, recurso não documentado.

moreaug44
fonte