2014-12-18 11 views
9

Ich habe eine Anwendung, die gerade funktioniert, alles ist in Ordnung.Nach dem Hinzufügen der Watchkit-Erweiterung zum Projekt funktionieren zuvor hinzugefügte Frameworks von Drittanbietern nicht mehr

Wenn ich auf Datei-> Neu-> Ziel gehe und eine Watchkit App/Erweiterung hinzufüge, wird der Build sofort abgebrochen, weil "Modul 'Crashlytics' nicht gefunden wurde". Momentan wird auf Crashlytics unter Verwendung von @import Crashlytics zugegriffen, ich habe das Projekt überprüft, und in der Datei pbxproj ist das Crashlytics-Framework auf den richtigen Speicherort verwiesen, und Crashlytics.h ist im Projekt sichtbar. Ich habe versucht, auf #import "Crashlytics.h" zu wechseln, nur um zu sehen, ob es vielleicht etwas mit dem Modul zu tun hatte, im Gegensatz zum einfachen Importieren der Kopfzeile, aber dann Crashlytics.h file not found.

Crashlytics ist seit sehr langer Zeit im Projekt und arbeitet perfekt. Ist beim Hinzufügen der Überwachungserweiterung bei Verwendung externer Frameworks oder Pods etwas zusätzliches erforderlich?

(Wenn ich die Zeile komplett ausdenke, nur um zu sehen, was passiert, bekomme ich ein ähnliches Problem für eine der Cocoapoden, die wir benutzen, und ich wäre bereit zu sein, wenn ich Dinge kommentieren würde Am Ende muss ich alles entfernen, was ein externes Framework ist.

+0

versuchen, diese Antwort - http://stackoverflow.com/questions/29500227/xcode-no-such-module-error-but-the-framework-is-there –

Antwort

3

Ich fand die Antwort selbst. Und wie immer war es etwas albern, aber wichtig. Als ich die Erweiterung hinzufügte, wurden die Bibliotheken und Frameworks von Drittanbietern nicht automatisch zum Ziel hinzugefügt, also musste ich zurückgehen und "Dateien hinzufügen", um das Crashlytics-Framework in das WatchKit Extension-Ziel hinzuzufügen.

Auch stellt sich heraus, dass dies ein größeres Problem ist. Meine Vermutung ist, dass es ein Problem ist, das für jede Bibliothek oder Framework von Drittanbietern auftreten kann, wenn Erweiterungen hinzugefügt werden. Ich hatte auch das Problem mit meinen Cocoapoden und musste hinzufügen: link_with "target1", "target2" an die Poddatei, um sicherzustellen, dass die Pods zu mehr als nur dem Standard ersten Ziel hinzugefügt wurden.

Requisiten für Stephen Johnson obwohl, für diese Art von Problem die Header-und Bibliothek Suchpfade sind hervorragende Orte, um für das Debuggen zu überprüfen.

+0

link_with hat den Trick für mich in meinem podfile – johnyorke

+0

Vielen Dank! Du bist ein Genie! – r00m

0

Ich musste meine Header-Suchpfade in den Build-Einstellungen für mein Watch-Kit-Erweiterungsziel aktualisieren. Für meine App habe ich die Header-Suchpfade der Erweiterung mit den Header-Suchpfaden meiner App verknüpft.

enter image description here

+0

Okay, das auf jeden Fall, wie es sich anhört sollte sei richtig zu mir, ich habe auch Crashlytics zu den "Verknüpften Frameworks und Binärdateien" hinzugefügt, nachdem ich deinen Vorschlag gesehen habe, aber ich sehe immer noch das gleiche Problem. Ich bleibe dran, aber wenn Sie an andere Schritte oder Vorschläge denken, würde ich es begrüßen. – gdavdov

+0

Sieh dir die Bibliothekssuchpfade an und vergewissere dich, dass sie in deiner Erweiterung identisch sind wie in deiner iOS App. –

9

Verwenden Sie link_with in Ihrem Podfile.

link_with 'appName', 'appName WatchKit Extension' 

pod 'Alamofire', :git => "[email protected]:Alamofire/Alamofire.git", :branch => 'xcode-6.3' 
pod 'SwiftyJSON', :git => "[email protected]:SwiftyJSON/SwiftyJSON.git", :branch => 'xcode6.3' 
Verwandte Themen