2014-12-18 7 views
9

Ho un'applicazione che funziona attualmente, va tutto bene.Dopo aver aggiunto l'estensione watchkit al progetto, i framework di terze parti aggiunti in precedenza non funzionano più

Quando si passa a File-> Nuovo-> Target e si aggiunge un'app/estensione watchkit, la compilazione viene interrotta immediatamente perché "Modulo 'Crashlytics' non trovato". Attualmente, è possibile accedere ai Crashlytics usando @import Crashlytics, ho controllato il progetto, e il file pbxproj ha il framework crashlytics a cui si fa riferimento nella posizione corretta, e Crashlytics.h è visibile nel progetto. Ho provato a passare a #import "Crashlytics.h" solo per vedere se forse era qualcosa a che fare con il modulo invece di importare semplicemente l'intestazione, ma poi Crashlytics.h file not found.

Crashlytics è stato nel progetto per un tempo molto lungo, perfettamente funzionante. C'è qualcosa di extra richiesto quando si aggiunge l'estensione dell'orologio mentre si usano framework o pod esterni?

(Se commento la riga del tutto, solo per vedere cosa succede, ottengo un problema simile per uno dei cocoapod che stiamo usando, e sarei disposto ad essere se andassi avanti commentando le cose finisco per dover rimuovere tutto ciò che è un framework esterno)

+0

provare questa risposta - http://stackoverflow.com/questions/29500227/xcode-no-such-module-error-but-the-framework-is-there –

risposta

3

in realtà ho trovato la risposta me stesso. E come al solito era qualcosa di sciocco ma importante. Quando ho aggiunto l'estensione, le librerie e i framework di terze parti non sono stati aggiunti automaticamente alla destinazione, quindi ho dovuto tornare indietro e "aggiungere file" per aggiungere il framework Crashlytics alla destinazione dell'estensione WatchKit.

Inoltre, si tratta di un problema più ampio. Immagino sia un problema che potrebbe accadere per qualsiasi libreria o framework di terze parti quando viene aggiunta un'estensione. Ho anche avuto il problema con i miei cocoapods e ho dovuto aggiungere: link_with 'target1', 'target2' al file pod per assicurarsi che i pod fossero aggiunti a più del solo target predefinito.

Puntelli a Stephen Johnson, tuttavia, per questo tipo di problema i percorsi di ricerca dell'intestazione e della libreria sono eccellenti per verificare il debug.

+0

link_with ha fatto il trucco per me nel mio podfile – johnyorke

+0

Grazie! Sei un genio! – r00m

0

Ho dovuto aggiornare i miei percorsi di ricerca dell'intestazione nelle impostazioni di costruzione per il mio obiettivo estensione del kit orologio. Per la mia app ho reso i percorsi di ricerca dell'intestazione dell'estensione corrispondenti ai percorsi di ricerca dell'intestazione dell'app.

enter image description here

+0

Okay, che suona sicuramente come dovrebbe avere ragione con me, ho anche esaminato l'aggiunta di Crashlytics ai "Linked Frameworks and Binaries" dopo aver visto il tuo suggerimento, ma sto ancora vedendo lo stesso problema. Continuerò a farlo, ma se pensi ad altri passi o suggerimenti lo apprezzerei. – gdavdov

+0

Dai un'occhiata ai percorsi di ricerca della libreria e assicurati che siano identici nell'estensione come nella tua app iOS. –

9

Utilizzare link_with nel numero 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' 
Problemi correlati