Rápido. Não foi possível construir o módulo objetivo-c 'Alamofire'

117

Instalação de submódulo fresco do Alamofire, usando XCode6 e seguindo as instruções para um T. Algo aqui simplesmente não está se encaixando bem. O erro que estou recebendo é "Não foi possível construir o módulo objetivo-c" alamofire "ao importar alamofire. Aqui está uma captura de tela do erro que estou recebendo:

insira a descrição da imagem aqui E minha configuração:

insira a descrição da imagem aqui

stophinal
fonte
Acho que você tem que instalar o alamofire de acordo com as instruções fornecidas aqui github.com/Alamofire/Alamofire
Saurabh Prajapati
Conseguiu fazê-lo funcionar? funcionou para mim e depois de outro "Build and run" parou e recebi a mesma mensagem de erro ... :(
Georg
2
Um colega acabou de receber a mesma mensagem de erro, mas o motivo acabou sendo que ele ainda estava usando o Xcode 6.1 (é a era 6.3 em que estamos enquanto escrevo isso). Dizendo isso apenas para registro, caso alguém mais tenha problemas com a mesma coisa.
Villapossu

Respostas:

103

Quando isso acontecer, apenas crie as estruturas separadamente primeiro. No seu caso:

  • Mude o esquema para Alamofire
  • Construir ( ⌘B )
  • Volte para o seu esquema
  • Corre
Daniel Larsson
fonte
3
Ótima resposta; Eu estava alheio a mudar o esquema de compilação para corrigir esses tipos de erros!
tehprofessor
1
Obrigado pela ajuda.
Tidane de
5
Se você tiver que construir o esquema separadamente, provavelmente significa que você não tem a estrutura definida como uma dependência de destino nas configurações de construção de seu aplicativo corretamente. Faça isso e você não terá que criá-lo manualmente.
Charles A.
Votei nisso, pois funciona no Xcode. Infelizmente, não funcionará se construir a partir da linha de comando ou se construir para o Release.
Eneko Alonso
Isso corrigiu um problema que estava tendo com o GoogleApiClient / Drive. A compilação seria bem-sucedida, mas assim que quaisquer mudanças fossem feitas no arquivo, o Xcode reclamaria sobre a importação.
Nick Alexander
53

Vá para Developer / Xcode / DerivedData e exclua a pasta de sua estrutura. (Ou apenas exclua o próprio DerivedData)

Se você tiver uma versão do seu aplicativo em um simulador de execução, precisará excluir o aplicativo lá.

Em seguida, limpar e construir

Sean Howell
fonte
Isso funcionou para mim também, mas quando encontro vários produtos de comando, este link ajudará: stackoverflow.com/questions/50718018/… .
Bhimbim
32

Isso sempre funciona para mim:

  1. Saia do Xcode
  2. Excluir ~/Library/Developer/Xcode/DerivedData
  3. Mude para o esquema do seu framework e construa o ⌘B
  4. Mude para o esquema do seu aplicativo e crie ⌘B
Sam Soffes
fonte
22

Excluir a pasta DerivedData e limpar e construir o projeto resolveu esse problema para mim.

Isuru
fonte
15

Tente o seguinte nesta ordem e uma das etapas deve funcionar.

  1. Cmd+ B- Constrói o espaço de trabalho e possivelmente deve construir o destino ou módulo que desejamos.

  2. Cmd+ Ke Cmd+ B- Limpar e depois construir

  3. Cmd+ Shift+ Option+ Ke Cmd+ B- Limpar pasta de compilação

  4. Saia do Xcode, exclua os dados derivados, inicie o Xcode e Cmd+ Shift+ Option+ KeCmd +B

Essa é a maneira mais limpa possível de limpar os dados derivados e outros caches do Xcode.

Ravisekahrp
fonte
Para aqueles que usam iCloud sincronização (Por exemplo, ter o projeto em pasta Documentos de modo que seria fácil sincronização para múltiplos Mac), cheque de ficheiro com o nome: XXX 2.swift. Pesquise e exclua todos eles e execute pod install.
John Pang
12

Se você estiver recebendo este erro ao tentar importar uma estrutura dinâmica, certifique-se de que a estrutura esteja incluída nas Dependências de destino do destino.

Project > "Target" > Build Phases > Target Dependencies

David James
fonte
Além disso, se você estiver trabalhando com outro framework desenvolvido no mesmo espaço de trabalho, certifique-se de adicionar o projeto como uma biblioteca vinculada em vez do arquivo do framework, caso contrário, o framework não ficará visível como uma dependência de destino.
Dávid Pásztor
11

Construir limpo funcionou para mim.

  1. Construir limpo para Alamo
  2. Construir limpo para HTTPDemo
Nick Mitchell
fonte
6

Comente a importação e todo o código que o usa, crie, execute e remova o comentário. Funcionou para mim ...

xytor
fonte
1

Resolvi esse problema em um dos meus projetos híbridos Objective-C / Swift.

Em seu arquivo de ponte Objective-C, adicione a seguinte linha:

#import <Alamofire/Alamofire.h>

Eddie Lau
fonte
0

Qualquer pod com falha na construção pode causar esse erro também. (no meu caso, um pod antigo usando sintaxe obsoleta falhou ao construir).

Você pode tentar pod updateatualizar seus pods para a versão mais recente e ver como funciona.

Gang Fang
fonte
Para aqueles que usam iCloud sincronização (Por exemplo, ter o projeto em pasta Documentos de modo que seria fácil sincronização para múltiplos Mac), cheque de ficheiro com o nome: XXX 2.swift. Pesquise e exclua todos eles e execute pod install.
John Pang
0

Correção maluca para esse problema - solução que funciona apenas para mim

Crie um novo esquema e adicione a estrutura que está apresentando erro. Neste caso, 'Alamofire'. Execute todos esses esquemas.

Depois de compilar todos os esquemas, o objetivo do projeto também funcionará bem.

Pode parecer uma solução maluca, mas só funciona para mim.

Saranjith
fonte
0

Se as arquiteturas válidas do projeto Alamofire não contiverem as arquiteturas válidas do seu projeto, ocorrerá o erro "Não foi possível construir o módulo objetivo-c ..".

Adicione essas arquiteturas i386 x86_64 arm64 arm64e armv7 armv7s armv6 armv64 às ' Arquiteturas válidas ' do projeto Alamofire em ' Configurações de compilação '.

Construa o mesmo dispositivo de destino para ambos os projetos. Por exemplo, em primeiro lugar, construa o projeto Alamofire para iPhone 8 (13.2) e, em seguida, construa seu projeto para o mesmo simulador.

Se a construção do projeto Alamofire demorar muito, o que significa cerca de 0,5 segundos, significa que o projeto Alamofire ocorre um erro porque a arquitetura do simulador selecionado não está nas arquiteturas válidas .

Yusuf Demirci
fonte