Cocoapods + Impossible de charger le module sous-jacent pour 'x'

89

J'utilise XCode 7, Swift 2.0, iOS 9.

Je souhaite installer Alamofire dans mon projet à l'aide de Cocoapods. J'ai fait ce qui suit:

gem install cocoapods

pod setup

pod init

Podfile mis à jour pour:

# 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

Ensuite, j'ai installé le pod:

pod install

Et j'ai ajouté ce qui suit à ViewController.swift

import Alamofire

Cela soulève l'erreur suivante:

Cannot load underlying module for 'Alamofire'

J'ai testé avec un autre pod et cela a soulevé la même erreur, donc je suppose que le problème vient de l'installation de Cocoapods. Toute aide serait grandement appréciée.


la source
vérifiez que vous avez importé les frameworks nécessaires
user3722523

Réponses:

209

Cela semble être un bogue dans XCode. J'ai eu le même problème, et comme décrit dans les commentaires d'une autre réponse à cette question, la construction du projet a fait disparaître l'erreur.

vichle
la source
4
Je viens presque ici au début de n'importe quel projet ... Merci mon pote
SoliQuiD
2
Cette putain de solution de contournement fonctionne toujours. XCode devrait être open source.
Siddharth
24

Allez dans Produit> Construire et cela résoudra le problème: entrez la description de l'image ici

Zulqarnain
la source
14

Cela a fonctionné pour moi:

  1. Fermez votre projet
  2. Dans le terminal, accédez au répertoire de votre projet
  3. Ajoutez cette commande: pod update
  4. Après cela, tous vos pods seront mis à jour. Exécutez simplement votre projet
Alex Kolovatov
la source
10

Impossible de charger le module sous-jacent pour «x» pour SWIFT:

Comment résoudre le problème:

étape: 1 Créez un nouveau projet et générez et exécutez avec succès sans installer le pod.

étape: 2 Après avoir construit et exécuté le projet avec succès, essayez maintenant d'installer le pod, puis essayez d' importer un royaume, un alamofire, des graphiques, etc. cela fonctionnera comme un charme.

Cas d'échec -> Nouveau projet -> Ajouter (royaume, alamofire, graphiques, etc.) via des cocoapods sans construire d'abord -> ouvrir l'espace de travail Xcode -> construire et exécuter

Cas de réussite -> Nouveau projet -> construire et exécuter -> ajouter (royaume, alamofire, graphiques, etc.) via cocoapods -> ouvrir l'espace de travail Xcode -> construire et exécuter à nouveau = succès

Arun
la source
Vous ne pouvez pas envisager de "démarrer un nouveau projet" chaque fois que vous voyez cette erreur lorsque 99% du temps elle se produit dans un projet existant. Pourquoi ne pas essayer la `` mise à jour du pod ''
Renexandro
9

Une fois que vous avez installé le pod Alamofire.

Étape 1, vous devez ouvrir votre projet en double-cliquant sur le fichier your_project_name.xcworkspace.

Étape 2 Allez dans les paramètres du projet -> Phases de construction -> Lier le binaire avec les bibliothèques -> Ajouter le cadre "Alamofire.framework"

C'est tout!!

Vous pouvez maintenant importer le module

Ajay Reddy
la source
8

Ce qui a aidé dans mon cas:

1) Fermez le projet et XCode

2) Dans la commande de répétition du terminal

> pod install

3) Ouvrez le projet

(Si cela ne résout pas le problème, essayez de supprimer le pod / dossier avant de réinstaller)

Andrey
la source
1
En outre, supprimez le Pod/dossier avant de réinstaller
nikans
7

J'ai essayé toutes ces solutions: Reconstruire, nettoyer, réinstaller les pods, etc., mais dans mon cas, c'était un problème de changer mon paramètre `` Construire une architecture active uniquement '' sur `` Non '', en raison d'un AR bibliothèque que j'utilisais. Il a été changé en «Oui» et il a été corrigé. J'espère que cela aide quelqu'un.

Jacobo Koenig
la source
Certes, c'était le problème principal, vous devez nettoyer avec command-shift-K
Hola Soy Edu Feliz Navidad
J'ai dû le régler de OUI à NON. Bizarre.
Mundi
7

Je devais créer un dossier Product> (Opt Click) Clean Build ... puis relancer et le problème avait disparu.

Shokaveli
la source
5

Je suis sur la version 8.3.1 de Xcode (8E1000a). D'une manière ou d'une autre, ce problème se produit lorsque je souhaite installer le module SwiftCloudant. Je n'ai probablement pas fermé mon Xcode lorsque j'exécute l'installation du pod.

J'ai corrigé cela manuellement en ajoutant le SwiftCloudant.framework dans l'onglet Cibles> Général.

Cibles> Général> Frameworks et bibliothèques liés

khongks
la source
Après que tout le reste ait échoué, cela a fonctionné. Merci beaucoup.
AmirZ le
4

Dans mon cas, c'était une raison différente, c'était les autres indicateurs rapides dans le paramètre de construction de mes cibles, je devais ajouter un indicateur hérité en haut.

Abd Al-rhman Taher Badary
la source
3

Avez-vous vérifié si vous disposez d'une version récente de Cocoapods? Vous pouvez mettre à jour soit en mettant à jour toutes vos gemmes:

sudo gem update

ou réinstallez simplement Cocoapods:

 [sudo] gem install cocoapods

Si cela ne vous aide pas, jetez également un œil à: CocoaPods - build pour iOS 9 / Swift 2 avec Xcode-beta

où est vous montre comment changer facilement la version des outils de ligne de commande dans l'onglet «Emplacements» des préférences de Xcode, et changer «Outils de ligne de commande» en Xcode 7.0.

Glenn
la source
Oui, c'était la version la plus récente. Je viens de comprendre le problème. J'ai construit le projet et tout d'un coup, cela a fonctionné.
Ok alors s'il vous plaît répondez à votre propre question avec la solution que vous avez trouvée afin que les autres puissent résoudre ce problème quand ils rencontrent cela,
Glenn
3

Suis les étapes:

1.Installez des pods 2.Ouvrez workSpace 3.Exécutez / construisez votre application 4.Ensuite, vous pouvez importer le framework

Augustin A
la source
2

Impossible de charger le module sous-jacent

  1. Vérifiez le chemin du framework: Build Settings -> Framework Search Paths .
  2. Assurez-vous que le chemin d'accès à un framework ne contient pas d'espace.
  3. Si le chemin contient une variable, recherchez la valeur des variables en recherchant le nom de la variable dans votre Build Settings .
  4. Assurez-vous que la valeur des variables ne contient pas d'espace.
  5. Si le chemin contient des espaces, renommez les répertoires qui contiennent des espaces.
  6. Nettoyez et construisez le projet.

En résumé, assurez-vous que votre <Project Root>chemin ne contient pas d'espace. Sinon, renommez le dirqui contient des espaces, puis nettoyez et générez votre projet.

Par exemple, s'il s'agit de la racine de votre projet: /Users/handsomeboy/ios app/Fancy App/renommez le dossier contenant des espaces. Une façon de se débarrasser de l'espace: changer 'ios app'pour'ios_app'

Markus Wu
la source
2

Le réglage GCC_SYMBOLS_PRIVATE_EXTERN(affiché comme «Symboles cachés par défaut» dans les paramètres de la cible) YESdans le cadre en cours de liaison m'a aidé à me débarrasser de cette erreur. J'ai passé 2 jours à le découvrir, j'espère que cela aidera quelqu'un :)

Alexandre
la source
2

À cette URL: https://github.com/Alamofire/Alamofire/issues/441

Un des utilisateurs a écrit ceci:

Le nettoyage n'a pas fonctionné, la réinstallation à partir des pods n'a pas fonctionné, l'installation à partir de Carthage n'a pas fonctionné, l'installation manuelle n'a pas fonctionné. Je l'ai finalement fait fonctionner après Build for Testing.

J'ai donc essayé ceci (xcode version 9.2 (9C40b)):

entrez la description de l'image ici

Cela a fonctionné pour moi. L'erreur est partie maintenant.

Remarque: mon pod n'était pas Alamofire, donc je suppose que cela fonctionnera pour chaque pod.

EFE
la source
2

Un autre scénario possible: assurez-vous que la cible de test est définie dans la portée de la cible parente (pas en dehors de celle-ci)

par exemple

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

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

Si à la place cela ressemble à:

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

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

alors vous recevrez également cette erreur.

J'ai été volé
la source
1

Même problème pour moi. J'ai résolu cela en supprimant la version Alamofire dans le fichier pod.

Fichier de pod comme

# 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
la source
1

Dans mon cas:

1. Ligne de commentaire de //import Pod_Module

2. Allez dans Projet -> Nettoyer ou utilisez la touche de raccourci (Commande + Maj + K)

2. Fermez votre projet

3. Dans le terminal, accédez au répertoire de votre projet

4. exécutez > pod install

5. ouvrez le .xcworkspacefichier et construit le!

6. Décommenter la ligne deimport Pod_Module

Reza Dehnavi
la source
0

Lors de l'installation de CocoaPods, assurez-vous de spécifier ios 9.0 en supprimant le #. Par conséquent, # platform :ios, '9.0'devrait juste êtreplatform :ios, '9.0' alors, si l'erreur se reproduit, créez et exécutez simplement. Après avoir généré et exécuté, l'erreur ne doit pas revenir.

En outre, cela peut se produire si plusieurs versions de Xcode sont installées sur votre ordinateur. Quittez (pas seulement fermez) toutes les versions de Xcode en premier.


la source
0

essayer Build For testing fonctionne pour moi

Tawfik Bouabid
la source
0

Si vous avez vérifié que vos pods ont été installés avec succès, l'erreur peut être associée aux données dérivées restantes avant l'installation des pods. Vous pouvez effacer vos données dérivées en accédant à File -> Workspace Settings... -> Derived Data. La suppression du dossier de données dérivé associé à votre application et le nettoyage de votre build devraient résoudre le problème.

Brian Li
la source