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



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

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


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

22

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


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.


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


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

6

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


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>


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.


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.


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 .

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.