2015-06-05 6 views
6

Sto cercando di creare un Cocoa Touch Framework per iOS8 che verrà incorporato nelle app e inviato all'app store, quindi è importante che la versione di rilascio contenga SOLO armv7 ma la build di debug deve essere eseguita anche nel simulatore. Come tale, ho seguito this tutorial e sto colpendo su di un errore di runtime quando si tenta di eseguire un'applicazione nel simulatore con il framework embedded:Il framework personalizzato non viene caricato nel simulatore iOS (architettura errata)

dyld: Library not loaded: @rpath/TestFramework.framework/TestFramework 
    Referenced from: /Users/jay/Library/Developer/CoreSimulator/Devices/97715157-EABB-4F38-8CA0-62768358DDD6/data/Containers/Bundle/Application/4856FC75-6C5B-4F7E-91A9-70CA1863D130/Test.app/TestFramework 
    Reason: no suitable image found. Did find: /Users/jay/Library/Developer/CoreSimulator/Devices/97715157-EABB-4F38-8CA0-62768358DDD6/data/Containers/Bundle/Application/4856FC75-6C5B-4F7E-91A9-70CA1863D130/Test.app/Frameworks/TestFramework.framework/TestFramework: mach-o, but wrong architecture 

Tuttavia, quando navigo al binario quadro si lamenta su

(/Users/jay/Library/Developer/CoreSimulator/Devices/97715157-EABB-4F38-8CA0-62768358DDD6/data/Containers/Bundle/Application/4856FC75-6C5B-4F7E-91A9-70CA1863D130/Test.app/) 

ed eseguire xcrun lipo -info TestFramework ho l'uscita Non-fat file: TestFramework is architecture: i386 quindi sto un pò perso dove andare. Funziona bene su un dispositivo iOS reale.

+0

"inviato all'app store" e "contiene solo ARMv7" si escludono a vicenda. – Droppy

+0

Mi spiace, armv7/arm64. Qualunque cosa, solo architetture di simulatore. – Jay

+0

OK Suppongo che questo si riferisca al modo in cui il target dell'app Xcode è reso dipendente dal target del framework. Se questo è impostato in * Build Phase * correttamente, Xcode creerà l'architettura corretta per l'app (cioè dispositivo o simulatore). Penso quindi che tutto ciò che devi fare è copiarlo nella posizione corretta nel pacchetto dell'app (la struttura del bundle dell'app iOS è molto meno formale della struttura del bundle dell'app OSX, ma è comunque necessario farlo). Probabilmente questo avrebbe bisogno di uno script personalizzato nella scheda * Build Fhases *. – Droppy

risposta

0

In base alla domanda e ai commenti, la causa più probabile di questo è che si sta costruendo il framework per 32 bit e collegandolo a un'applicazione a 64 bit. In caso contrario, fornisci l'intero testo del registro degli arresti anomali.

Si dovrebbe costruire il quadro 4way-grassi:

i386/iphonesimulator 
    x86_64/iphonesimulator 
    armv7/iphoneos 
    arm64/iphoneos 

Al fine di rendere più grasso 4 vie, sarà necessario manualmente lipo-insieme il vostro i386/x86_64 sim costruire con il vostro ARMv7/arm64 build del dispositivo. La costruzione di grassi a 4 vie con due piattaforme differenti (dalla prospettiva di Xcode) non è supportata da Xcode.

Problemi correlati