Cocoapods + Das zugrunde liegende Modul für 'x' kann nicht geladen werden.

89

Ich verwende XCode 7, Swift 2.0, iOS 9.

Ich möchte Alamofire mit Cocoapods in meinem Projekt installieren. Ich habe folgendes getan:

gem install cocoapods

pod setup

pod init

Podfile aktualisiert auf:

# 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

Dann habe ich den Pod installiert:

pod install

Und ich habe ViewController.swift Folgendes hinzugefügt

import Alamofire

Dies löst den folgenden Fehler aus:

Cannot load underlying module for 'Alamofire'

Ich habe mit einem anderen Pod getestet und es hat den gleichen Fehler ausgelöst. Ich denke, das Problem liegt in der Installation von Cocoapods. Jede Hilfe wäre sehr dankbar.


quelle
Überprüfen Sie, ob Sie die erforderlichen Frameworks importiert haben
user3722523

Antworten:

209

Dies scheint ein Fehler in XCode zu sein. Ich hatte das gleiche Problem, und wie in den Kommentaren einer anderen Antwort auf diese Frage beschrieben, wurde der Fehler beim Erstellen des Projekts behoben.

vichle
quelle
4
Ich komme fast zu Beginn eines Projekts hierher ... Danke Kumpel
SoliQuiD
2
Die verdammte Problemumgehung funktioniert immer noch. XCode sollte Open Source sein.
Siddharth
24

Gehen Sie zu Produkt> Erstellen und das Problem wird behoben: Geben Sie hier die Bildbeschreibung ein

Zulqarnain
quelle
14

Das hat bei mir funktioniert:

  1. Schließen Sie Ihr Projekt
  2. Gehen Sie im Terminal zu Ihrem Projektverzeichnis
  3. Fügen Sie diesen Befehl hinzu: pod update
  4. Danach werden alle Ihre Pods aktualisiert. Führen Sie einfach Ihr Projekt aus
Alex Kolovatov
quelle
10

Das zugrunde liegende Modul für 'x' für SWIFT kann nicht geladen werden:

So beheben Sie das Problem:

Schritt: 1 Erstellen Sie ein neues Projekt und erstellen und führen Sie es erfolgreich aus, ohne den Pod zu installieren.

Schritt: 2 Nachdem Sie das Projekt erfolgreich erstellt und ausgeführt haben, versuchen Sie nun, den Pod zu installieren und dann Realm, Alamofire, Diagramme usw. zu importieren. Es funktioniert wie ein Zauber.

Fehlerfall -> Neues Projekt -> Add (Reich, alamofire, Diagramme usw.) über cocoapods w / o erste Gebäude -> open Xcode Arbeitsplatz -> Build & Run

Erfolgsfall -> Neues Projekt -> Erstellen und Ausführen -> Hinzufügen (Realm, Alamofire, Diagramme usw.) über Cocoapods -> Öffnen des Xcode-Arbeitsbereichs -> erneutes Erstellen und Ausführen = Erfolg

Arun
quelle
Sie können nicht in Betracht ziehen, jedes Mal, wenn Sie diesen Fehler sehen, ein neues Projekt zu starten, wenn dies in 99% der Fälle in einem vorhandenen Projekt geschieht. Was ist mit dem Versuch 'Pod Update'
Renexandro
9

Sobald Sie Alamofire Pod installiert haben.

Schritt 1: Öffnen Sie Ihr Projekt, indem Sie auf die Datei your_project_name.xcworkspace doppelklicken.

Schritt 2 Gehen Sie zu Projekteinstellungen -> Phasen erstellen -> Binär mit Bibliotheken verknüpfen -> Framework hinzufügen "Alamofire.framework"

Das ist es!!

Jetzt können Sie das Modul importieren

Ajay Reddy
quelle
8

Was hat in meinem Fall geholfen:

1) Schließen Sie das Projekt und den XCode

2) Im Terminalwiederholungsbefehl

> pod install

3) Öffnen Sie das Projekt

(Wenn dies nicht hilft, versuchen Sie, Pod / Ordner vor der Neuinstallation zu entfernen.)

Andrey
quelle
1
Entfernen Sie auch Pod/Ordner vor der Neuinstallation
Nikans
7

Ich habe alle diese Lösungen ausprobiert: Neu erstellen, reinigen, Pods neu installieren usw. In meinem Fall war es jedoch ein Problem, die Einstellung "Nur aktive Architektur erstellen" aufgrund eines AR auf "Nein" zu ändern Bibliothek, die ich benutzte. Es wurde wieder in "Ja" geändert und behoben. Hoffe das hilft jemandem.

Jacobo Koenig
quelle
Richtig, das war das Hauptproblem, Sie müssen mit Command-Shift-K
Hola Soja Edu Feliz Navidad
Ich musste es von JA auf NEIN setzen. Seltsam.
Mundi
7

Ich musste einen Produkt> (Opt Click) Clean Build Folder erstellen ... dann erneut ausgeführt und das Problem war behoben.

Shokaveli
quelle
5

Ich bin auf Xcode Version 8.3.1 (8E1000a). Irgendwie tritt dieses Problem auf, als ich das SwiftCloudant-Modul pod-installieren wollte. Wahrscheinlich habe ich meinen Xcode nicht geschlossen, als ich die Pod-Installation ausgeführt habe.

Ich habe dies behoben, indem ich das SwiftCloudant.framework manuell auf der Registerkarte Ziele> Allgemein hinzugefügt habe.

Ziele> Allgemein> Verknüpfte Frameworks und Bibliotheken

Khongks
quelle
Nachdem alles andere fehlgeschlagen war, funktionierte dies tatsächlich. Vielen Dank.
AmirZ
4

In meinem Fall war es ein anderer Grund, es waren die anderen schnellen Flags in meiner Ziel-Build-Einstellung. Ich musste das geerbte Flag oben hinzufügen.

Abd Al-rhman Taher Badary
quelle
3

Haben Sie überprüft, ob Sie eine aktuelle Version von Cocoapods haben? Sie können entweder alle Ihre Edelsteine ​​aktualisieren:

sudo gem update

oder installieren Sie einfach Cocoapods neu:

 [sudo] gem install cocoapods

Wenn das nicht hilft, schauen Sie sich auch an: CocoaPods - Build für iOS 9 / Swift 2 mit Xcode-Beta

Hier erfahren Sie, wie Sie die Version der Befehlszeilentools auf der Registerkarte "Standorte" der Xcode-Einstellungen und "Befehlszeilentools" in Xcode 7.0 ändern können.

Glenn
quelle
Ja, es war der letzte Build. Ich habe das Problem nur herausgefunden. Ich habe das Projekt gebaut und plötzlich hat es funktioniert.
Ok, dann beantworten Sie bitte Ihre eigene Frage mit der Lösung, die Sie gefunden haben, damit andere das Problem beheben können, wenn sie darauf stoßen.
Glenn
3

Folge den Schritten:

1.Installieren Sie Pods 2.Öffnen Sie workSpace 3. Führen Sie Ihre Anwendung aus und erstellen Sie sie. 4. Anschließend können Sie das Framework importieren

Augustin A.
quelle
2

Das zugrunde liegende Modul konnte nicht geladen werden

  1. Überprüfen Sie den Framework-Pfad : Build Settings -> Framework Search Paths.
  2. Stellen Sie sicher, dass der Pfad zu einem Framework keinen Speicherplatz enthält.
  3. Wenn der Pfad eine Variable enthält, suchen Sie den Wert der Variablen, indem Sie den Variablennamen in Ihrem suchen Build Settings.
  4. Stellen Sie sicher, dass der Wert der Variablen kein Leerzeichen enthält.
  5. Wenn der Pfad Leerzeichen enthält, benennen Sie die Verzeichnisse um, die Leerzeichen enthalten.
  6. Reinigen und bauen Sie das Projekt.

Stellen Sie zusammenfassend sicher, dass Ihr <Project Root>Pfad kein Leerzeichen enthält. Benennen Sie andernfalls das dirLeerzeichen um, bereinigen Sie es und erstellen Sie Ihr Projekt.

Beispiel: Wenn dies Ihr Projektstamm ist: /Users/handsomeboy/ios app/Fancy App/Benennen Sie den Ordner mit Leerzeichen um. Eine Möglichkeit, den Raum loszuwerden: Wechseln Sie 'ios app'zu'ios_app'

Markus Wu
quelle
2

Die Einstellung GCC_SYMBOLS_PRIVATE_EXTERN(in den Zieleinstellungen als "Standardmäßig ausgeblendete Symbole" angezeigt) auf YESdas verknüpfte Framework hat mir geholfen, diesen Fehler zu beseitigen. Ich habe 2 Tage damit verbracht, dies herauszufinden, hoffe es wird jemandem helfen :)

Alexander
quelle
2

Unter dieser URL: https://github.com/Alamofire/Alamofire/issues/441

Einer der Benutzer hat Folgendes geschrieben:

Clean funktionierte nicht, Neuinstallation von Pods funktionierte nicht, Installation von Karthago funktionierte nicht, manuelle Installation funktionierte nicht. Nach Build for Testing habe ich es endlich zum Laufen gebracht.

Also habe ich das versucht (xcode Version 9.2 (9C40b)):

Geben Sie hier die Bildbeschreibung ein

Es hat bei mir funktioniert. Fehler jetzt weg.

Hinweis: Mein Pod war nicht Alamofire, daher denke ich, dass es für jeden Pod funktioniert.

EFE
quelle
2

Ein weiteres mögliches Szenario: Stellen Sie sicher, dass das Testziel im Bereich des übergeordneten Ziels definiert ist (nicht außerhalb davon).

z.B

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

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

Wenn es stattdessen so aussieht:

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

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

dann erhalten Sie auch diesen Fehler.

Ich wurde ausgeraubt
quelle
1

Gleiches Problem für mich. Ich habe das gelöst, indem ich die Alamofire-Version in der Pod-Datei entfernt habe.

Pod-Datei als

# 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
quelle
1

In meinem Fall:

1. Kommentarzeile von //import Pod_Module

2. Gehen Sie zu Projekt -> Bereinigen oder verwenden Sie die Tastenkombination (Befehl + Umschalt + K).

2. Schließen Sie Ihr Projekt.

3. Gehen Sie im Terminal zu Ihrem Projektverzeichnis.

4. Führen Sie > pod install

5. Öffnen Sie die .xcworkspaceDatei und baue es!

6. Kommentarzeile vonimport Pod_Module

Reza Dehnavi
quelle
0

Stellen Sie bei der Installation von CocoaPods sicher, dass Sie ios 9.0 angeben, indem Sie das # löschen. Daher # platform :ios, '9.0'sollte nur platform :ios, '9.0'dann, wenn der Fehler erneut angezeigt wird, einfach erstellen und ausführen. Nach dem Erstellen und Ausführen sollte der Fehler nicht zurückkehren.

Dies kann auch auftreten, wenn auf Ihrem Computer mehr als eine Version von Xcode installiert ist. Beenden Sie (nicht nur schließen) zuerst alle Versionen von Xcode.


quelle
0

versuchen Sie Build For Testing funktioniert für mich

Tawfik Bouabid
quelle
0

Wenn Sie überprüft haben, dass Ihre Pods erfolgreich installiert wurden, kann der Fehler mit Ihren abgeleiteten Daten zusammenhängen, die vor der Installation der Pods noch vorhanden waren. Sie können Ihre abgeleiteten Daten löschen, indem Sie auf gehen File -> Workspace Settings... -> Derived Data. Das Löschen des abgeleiteten Datenordners, der Ihrer App zugeordnet ist, und das Bereinigen Ihres Builds sollten das Problem lösen.

Brian Li
quelle