Estou recebendo este erro ao construir meu aplicativo para iPhone:
ld: aviso: em /Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS3.1.sdk/System/Library /Frameworks/UIKit.framework/UIKit, falta a arquitetura necessária i386 no arquivo
O mesmo vale para todas as estruturas do meu aplicativo. É muito estranho já que isso não estava acontecendo antes.
iphone
cocoa-touch
Gabe Shahbazian
fonte
fonte
Respostas:
Isso acontece quando você adiciona uma estrutura ao seu projeto e, sem querer, copia a estrutura para o diretório do projeto.
A correção é verificar o diretório do projeto (onde você armazena o projeto no disco) para qualquer arquivo iphone SDK * .Framework e excluí-los.
O projeto ficará bem depois disso.
fonte
Eu tive o mesmo problema, e a solução acabou sendo fácil de resolver. Faça backup e abra o project.pbxproj (localizado dentro do pacote do arquivo do projeto) em TextMate ou TextEdit e procure a seção intitulada "/ * Begin XCBuildConfiguration section * /". Procure uma chave chamada FRAMEWORK_SEARCH_PATHS e exclua-a e seu conteúdo (uma vez por configuração de compilação, portanto, removi-a em dois lugares). Aqui está um exemplo do que eu excluí:
Meu projeto agora é construído para o dispositivo iPhone e o iPhoneSimulator.
fonte
O que aconteceu aqui é que o Xcode adicionou misteriosamente uma entrada "Framework Search Paths" que aponta para um SDK de dispositivo iPhone específico. Por exemplo, o meu foi recentemente definido para:
Isso leva o compilador a encontrar estruturas da arquitetura incorreta. Remover quaisquer valores da chave "Framework Search Paths" nas configurações de compilação do seu destino resolverá o problema.
fonte
Eu só queria mencionar que, no XCode, se você ir em "Edit Project Settings" e encontrar "Search Paths", há um campo para "Framework Search Paths". Atualizar isso deve resolver o problema, sem ter que hackear o arquivo do projeto!
Felicidades!
Jesse
fonte
Verifique se você não copiou a estrutura em seu projeto quando a adicionou. Se você o copiou, ele não consegue encontrar os caminhos originais. Para resolver esse problema. Exclua a estrutura AVFoundation de sua pasta de estruturas em seu projeto e, em seguida, adicione-a novamente, mas, desta vez, certifique-se de que a verificação de cópia não esteja marcada.
Isso consertou para mim!
fonte
fonte
Se o seu aplicativo se destina a ser executado no dispositivo, certifique-se de não tentar executá-lo no simulador. Pode parecer óbvio, mas verifique mesmo assim.
fonte
Embora seja possível que algo tenha sido excluído, minha experiência mostra que algo fica bagunçado no arquivo do projeto. Ainda não consegui definir o que é esse "algo". Tive problemas semelhantes quando a instalação do SDK estava normal. Há um par de opções.
Primeiro, adicione todos os seus arquivos a um novo projeto. Isso geralmente parece funcionar. Mas é meio chato.
Em segundo lugar, você pode clicar com o botão direito do mouse no projeto em XCode / Get Info / Build / Library Search Paths. Adicione novos caminhos semelhantes a /Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator3.1.sdk/usr/lib. Adicione as versões apropriadas dessa string para cada versão (2.2.1, etc) e plataforma (simulador ou iPhoneOS). Execute uma ação semelhante para Caminhos de pesquisa de estrutura se as estruturas forem o seu problema.
Terceiro, o que é mais trabalhoso, porém mais confiável, é abrir project.pbxproj de dentro de MyProject.xcodeproj (o Textmate é bom para isso). Procure por "/ * Begin XCBuildConfiguration section * /", depois "LIBRARY_SEARCH_PATHS" e "FRAMEWORK_SEARCH_PATHS". Adicione ou modifique os caminhos conforme apropriado e salve o arquivo.
Em qualquer caso, um pé no saco, e com certeza gostaria de apontar a causa, porque isso já aconteceu algumas vezes. O projeto constrói bem, então simplesmente levanta e se recusa a fazê-lo com o que parece ser um pequeno motivo.
fonte
"Editar configurações do projeto" e localizar "Caminhos de pesquisa" Há um campo para "Caminhos de pesquisa do framework". exclua tudo !!
fonte
Aconteceu aqui comigo também. Graças a um grande parceiro, encontramos a resposta. Seu Xcode pode estar apontando para o simulador .. altere-o para um dispositivo IOS ao invés ..construído suavemente após ....
fonte
Execute o comando file na estrutura do Terminal:
Você deve receber uma mensagem informando com quais arquiteturas o binário UIKit é compatível. Se você não vir "i386" listado, então, de alguma forma, você conseguiu remover a versão i386 do UIKit, o que significa que você não pode construir para o simulador. Para consertar isso, você terá que reinstalar o SDK.
Se você receber algum outro erro, espero que ele o ajude a descobrir qual é o problema real.
fonte
Só quero que você saiba que, no meu caso, eu estava tendo o mesmo problema, percebi que tinha uma pasta Xcode mais antiga chamada Xcode3.1.3. Acabei de renomeá-la porque era uma versão mais antiga e isso fez a mágica para mim.
fonte
Verifique os caminhos de pesquisa da biblioteca nas configurações de destino. Às vezes, bibliotecas idiotas são inseridas lá e isso causará um erro semelhante.
Você pode remover todas as entradas nesta seção.
fonte
Eu tinha acabado de experimentar algo um pouco diferente, porque trabalho na minha própria biblioteca (WM_GSRecognizerLib), mas o erro é o mesmo.
O que aconteceria: devido a algumas atualizações, o caminho direcionado à biblioteca a ser incluída (.a) era da pasta "Debug-iphoneos" (onde é gerada). Compilar para dispositivos iOS genéricos funcionou bem, mas não para o simulador, reclamando da ausência da arquitetura i386.
O que fiz para esse problema foi incluir também os binários da pasta "Debug-iphonesimulator".
Isso pode ajudar neste tópico, porque a explicação está aqui: os dispositivos requerem binários para arm64 / armv7 / armv7s, enquanto o simulador precisa de i386.
fonte
Minha solução foi definir no simulador target debug YES, basta olhar no git status para ver a nova linha adicionada como arquitetura apenas em .project. se você não definir isso, a construção será executada em todas as arquiteturas e mostrará algumas arquiteturas ausentes, como i386 ou outra. OBSERVE QUE, obviamente, o principal problema é usar alguma estrutura que implemente algum tipo de arquitetura específica.
fonte
Eu também recebi o mesmo erro ao usar o xcode versão 4.0.2, então o que fiz foi selecionar o arquivo de projeto xcode e, a partir deles, selecionei a opção Alvo e pude ver o aplicativo do meu projeto, então cliquei nele e fui para o build opção de configurações.
Na opção de pesquisa digitei caminho de pesquisa do Framework , excluí todas as configurações e cliquei no botão construir e funcionou bem para mim,
Obrigado e cumprimentos
fonte