Ho creato un framework Objective-C personalizzato. Vorrei importarlo in qualsiasi progetto iOS e utilizzare la sua funzionalità fornita su iOS Simulator e su un dispositivo reale. Per importare il framework, lo collego utilizzando l'impostazione Fasi di creazione> Collega binaria con librerie nella destinazione dell'app. Sono quindi in grado di importarlo in una delle mie classi con questa affermazione:Errore Xcode 6 - "Missing Required Architecture i386" Quando si costruisce per iOS Simulator
#import <CustomFramework/CustomFramework.h>
posso istanziare le classi di mio framework bene, ma quando provo a fare funzionare il mio progetto su un dispositivo, ottengo il seguente errore messaggio:
dyld: Library not loaded: @rpath/CustomFramework.framework/CustomFramework
Referenced from: /var/mobile/Applications/A61E882D-481A-4C0B-B4FD-69F5D24968BF/TestApp.app/TestApp
Reason: image not found
E se provo a farlo funzionare sul simulatore, ottengo un messaggio di errore diverso:
ld: warning: ignoring file /Users/user/Desktop/CustomFramework.framework/CustomFramework, missing required architecture i386 in file /Users/user/Desktop/CustomFramework.framework/CustomFramework (2 slices)
Undefined symbols for architecture i386:
"_OBJC_CLASS_$_CustomFramework", referenced from:
objc-class-ref in AppDelegate.o
ld: symbol(s) not found for architecture i386
clang: error: linker command failed with exit code 1 (use -v to see invocation)
Ciò si verifica quando un'istanza di una classe dal quadro. Se imposto il framework ma non lo uso, la mia app si costruisce con successo. Si sbaglia solo quando istanzio una classe dal framework per qualche ragione.
Per far sì che l'app sia stata creata su un dispositivo, ho seguito la risposta this SO. Invece di collegare il framework, ho aggiunto una nuova fase di copia dei file nell'impostazione Fasi di creazione del target, impostare Destination to Framework e aggiunto il framework.
Che funziona benissimo; tuttavia, mi piacerebbe testare la mia app anche su iOS Simulator. Quando provo a eseguire la mia app sul simulatore, ottengo ancora l'errore "mancante architettura richiesta i386". Ho provato le soluzioni proposte in quasi tutti gli argomenti SO relativi che ho trovato e nulla mi ha aiutato a risolvere questo problema.
Si prega di notare che sto cercando di utilizzare il mio framework personalizzato in un nuovo progetto Xcode, quindi nessuna delle impostazioni di app/build sono state modificate dai loro valori predefiniti.
Come posso risolvere questo errore in modo che possa eseguire la mia app sia su iOS Simulator sia su un dispositivo con il mio framework incluso nel progetto? Qualsiasi intuizione sarebbe molto apprezzata!
Grazie per la risposta! Eppure è assurdo che fino al 2015, dobbiamo ancora ricorrere alla costruzione manuale per ottenere una struttura decente (il tutorial è come, lungo 10 pagine ?!). Vergogna, Apple! – Rick77
@ Rick77 Felice di aiutare! Sono completamente d'accordo.Sviluppo anche app per Windows e Windows Phone e non ho nemmeno dovuto pensarci su quelle piattaforme. – Alexander
@Alexander Il mio framework non è stato compilato per l'architettura di iOS Simulator. Supporta solo il dispositivo, Come far funzionare il mio framework in Simulator. Sto usando il framework. –
Arun