Cocoapods + Não é possível carregar o módulo subjacente para 'x'

89

Estou executando o XCode 7, Swift 2.0, iOS 9.

Quero instalar o Alamofire em meu projeto usando Cocoapods. Eu fiz o seguinte:

gem install cocoapods

pod setup

pod init

Podfile atualizado para:

# Uncomment this line to define a global platform for your project
# platform :ios, '9.0'
use_frameworks!

target 'JSONeg' do

  pod 'Alamofire', :branch => 'swift-2'

end

Então instalei o pod:

pod install

E adicionei o seguinte a ViewController.swift

import Alamofire

Isso gera o seguinte erro:

Cannot load underlying module for 'Alamofire'

Testei com outro pod e gerou o mesmo erro, então acho que o problema é com a instalação do Cocoapods. Qualquer ajuda seria muito apreciada.


fonte
verifique se você importou as estruturas necessárias
user3722523,

Respostas:

209

Este parece ser um bug no XCode. Eu tive o mesmo problema, e conforme descrito nos comentários de outra resposta a essa pergunta, construir o projeto fez com que o erro desaparecesse.

vichle
fonte
4
Quase venho aqui no início de qualquer projeto ... Obrigado amigo
SoliQuiD
2
A maldita solução alternativa ainda funciona. XCode deve ser de código aberto.
Siddharth
24

Vá para Produto> Compilar e isso resolverá o problema: insira a descrição da imagem aqui

Zulqarnain
fonte
14

Isso funcionou para mim:

  1. Feche seu projeto
  2. No terminal, vá para o diretório do seu projeto
  3. Adicione este comando: pod update
  4. Depois disso, todos os seus pods serão atualizados. Basta executar seu projeto
Alex Kolovatov
fonte
10

Não é possível carregar o módulo subjacente para 'x' para SWIFT:

Como corrigir o problema:

passo: 1 Crie um novo projeto e construa e execute com sucesso sem instalar o pod.

passo: 2 Depois de construir e executar o projeto com sucesso, agora tente instalar o pod e, em seguida, tente importrealm, alamofire, gráficos, etc, ele funcionará como um encanto.

Caso de falha -> Novo projeto -> Adicionar (reino, alamofire, gráficos etc) via cocoapods sem construir primeiro -> abrir o espaço de trabalho do Xcode -> construir e executar

Caso de sucesso -> Novo projeto -> construir e executar -> adicionar (reino, alamofire, gráficos etc) via cocoapods -> abrir espaço de trabalho do Xcode -> construir e executar novamente = sucesso

Uma corrida
fonte
Você não pode considerar "iniciar um novo projeto" toda vez que vir esse erro, quando 99% das vezes ele está acontecendo em um projeto existente. Que tal tentar apenas 'atualização de pod'
Renexandro
9

Depois de instalar o pod Alamofire.

Passo 1 você deve abrir seu projeto clicando duas vezes no arquivo your_project_name.xcworkspace.

Etapa.2 Vá para as configurações do projeto -> Fases de construção -> Vincular binário às bibliotecas -> Adicionar estrutura "Alamofire.framework"

É isso aí!!

Agora você pode importar o módulo

Ajay Reddy
fonte
8

O que ajudou no meu caso:

1) Feche o projeto e o XCode

2) No comando de repetição do terminal

> pod install

3) Abra o projeto

(Se não ajudar, tente remover o pod / pasta antes de reinstalar)

Andrey
fonte
1
Além disso, remova a Pod/pasta antes de reinstalar
nikans
7

Tentei todas essas soluções: reconstruir, limpar, reinstalar os pods, etc., mas no meu caso, foi um problema de alterar minha configuração 'Construir somente arquitetura ativa' para 'Não', devido a um AR biblioteca que eu estava usando. Alterou de volta para 'Sim' e foi corrigido. Espero que isso ajude alguém.

Jacobo Koenig
fonte
Verdade, esse era o problema principal, você tem que limpar com comando-shift-K
Hola Soy Edu Feliz Navidad
Eu tive que definir de SIM para NÃO. Esquisito.
Mundi
7

Tive que fazer um Produto> (clique em Opt) Limpar pasta de compilação ..., executei novamente e o problema foi resolvido.

Shokaveli
fonte
5

Estou no Xcode versão 8.3.1 (8E1000a). De alguma forma, esse problema ocorre quando eu queria instalar o módulo SwiftCloudant em pod. Provavelmente não fechei meu Xcode ao executar o pod install.

Corrigi isso adicionando manualmente o SwiftCloudant.framework na guia Targets> Geral.

Alvos> Geral> Estruturas e bibliotecas vinculadas

Khongks
fonte
Depois que tudo mais falhou, isso realmente funcionou. Muito obrigado.
AmirZ
4

No meu caso, foi por um motivo diferente, foram as outras bandeiras rápidas em minha configuração de construção de alvos, eu tive que adicionar a bandeira herdada no topo.

Abd Al-rhman Taher Badary
fonte
3

Você verificou se possui uma versão recente do Cocoapods? Você pode atualizar atualizando todas as suas joias:

sudo gem update

ou apenas reinstale os Cocoapods:

 [sudo] gem install cocoapods

Se isso não ajudar, dê uma olhada em: CocoaPods - versão para iOS 9 / Swift 2 com Xcode-beta

where is mostra como alterar facilmente a versão das ferramentas de linha de comando na guia "Locais" das Preferências do Xcode e alterar "Ferramentas da linha de comando" para Xcode 7.0.

Glenn
fonte
Sim, foi a compilação mais recente. Eu apenas descobri o problema. Construí o projeto e, de repente, funcionou.
Ok, então responda sua própria pergunta com a solução que você descobriu para que outros possam corrigir o problema quando encontrarem isso,
Glenn
3

Siga os passos:

1.Instalar pods 2.Abra o espaço de trabalho 3.Run/build seu aplicativo 4.Então você pode importar o framework

Augustin A
fonte
2

Não foi possível carregar o módulo subjacente

  1. Verifique o caminho de quadro: Build Settings -> Framework Search Paths.
  2. Certifique-se de que o caminho para uma estrutura não contenha espaço.
  3. Se o caminho contiver uma variável, encontre o valor das variáveis ​​pesquisando o nome da variável em seu Build Settings.
  4. Certifique-se de que o valor das variáveis ​​não contenha espaço.
  5. Se o caminho contiver espaços, renomeie os diretórios que contêm espaços.
  6. Limpe e construa o projeto.

Em resumo, certifique-se de que seu <Project Root>caminho não contenha espaço. Caso contrário, renomeie o dirque contém espaços e, em seguida, limpe e construa seu projeto.

por exemplo, se esta for a raiz do seu projeto:, /Users/handsomeboy/ios app/Fancy App/renomeie a pasta que contém espaços. Uma maneira de se livrar do espaço: mude 'ios app'para'ios_app'

Markus Wu
fonte
2

A configuração GCC_SYMBOLS_PRIVATE_EXTERN(exibida como "Símbolos ocultos por padrão" nas configurações de destino) para a YESestrutura sendo vinculada me ajudou a me livrar desse erro. Passei 2 dias para descobrir isso, espero que ajude alguém :)

Alexandre
fonte
2

Neste URL: https://github.com/Alamofire/Alamofire/issues/441

Um dos usuários escreveu isto:

Limpar não funcionou, reinstalar a partir de cápsulas não funcionou, instalar a partir de cartago não funcionou, a instalação manual não funcionou. Eu finalmente consegui fazer funcionar depois de Build for Testing.

Então, tentei isso (xcode versão 9.2 (9C40b)):

insira a descrição da imagem aqui

Funcionou para mim. O erro desapareceu agora.

Observação: meu pod não era Alamofire, então acho que funcionará com todos os pods.

EFE
fonte
2

Outro cenário possível: certifique-se de que o alvo de teste esteja definido dentro do escopo do alvo pai (e não fora dele)

por exemplo

target 'MyApp' do
  pod 'GoogleAnalytics', '~> 3.1'

  target 'MyAppTests' do
    inherit! :search_paths
    pod 'OCMock', '~> 2.0.1'
  end
end

Em vez disso, parece:

target 'MyApp' do
  pod 'GoogleAnalytics', '~> 3.1'
end

target 'MyAppTests' do
  inherit! :search_paths
  pod 'OCMock', '~> 2.0.1'
end

então você também receberá esse erro.

Fui roubado
fonte
1

O mesmo problema para mim. Resolvi isso removendo a versão Alamofire do arquivo pod.

Arquivo de pod como

# Uncomment this line to define a global platform for your project
platform :ios, "8.0"

# Uncomment this line if you're using Swift
use_frameworks!

target 'GettingSwift' do
 pod 'Alamofire'
end

target 'GettingSwiftTests' do
end
Purushottam Padhya
fonte
1

No meu caso:

1. Linha de comentário //import Pod_Module

2. Vá para Projeto -> Limpar ou use a tecla de atalho (Command + Shift + K)

2. Feche seu projeto

3. No terminal, vá para o diretório do projeto

4. execute > pod install

5. abra o .xcworkspacearquivo e construa!

6. Linha de descomentar deimport Pod_Module

Reza Dehnavi
fonte
0

Ao instalar CocoaPods, certifique-se de especificar ios 9.0 excluindo o #. Portanto, # platform :ios, '9.0'deve ser apenas platform :ios, '9.0'então, se o erro aparecer novamente, basta construir e executar. Depois de criar e executar, o erro não deve retornar.

Além disso, isso pode ocorrer se você tiver mais de uma versão do Xcode instalada em seu computador. Saia (não apenas feche) todas as versões do Xcode primeiro.


fonte
0

try Build para teste funciona para mim

Tawfik Bouabid
fonte
0

Se você verificou que seus pods foram instalados com êxito, o erro pode estar associado aos dados derivados restantes de antes da instalação dos pods. Você pode limpar seus dados derivados acessando File -> Workspace Settings... -> Derived Data. Excluir a pasta de dados derivada associada ao seu aplicativo e limpar sua construção deve resolver o problema.

Brian Li
fonte