2013-03-12 2 views
6

Attualmente sto lavorando su un'applicazione iOS (iOS 6), in cui ho bisogno di implementare una libreria statica.La libreria statica dà errore sul simulatore iOS e funziona su dispositivo iOS

Ho implementato correttamente la libreria statica utilizzando questo tutorial. E ho aggiunto con successo la libreria statica ad altri progetti e ho installato l'app su iPhone! Funziona con successo.

Ma il mio problema è quando ho provato a farlo funzionare sul mio simulatore di alcuni errori stanno arrivando:

"_OBJC_CLASS_$_MMPAlert", referenced from: 
     objc-class-ref in ViewController.o 
ld: symbol(s) not found for architecture i386 
clang: error: linker command failed with exit code 1 (use -v to see invocation) 

Xcode error console

ho aggiunto l'architettura di destinazione come:

Target settings

Ho cercato molto ma non ho trovato una soluzione, perché la mia libreria sta lavorando su un dispositivo e sta dando errori al simulatore.

Please help me, grazie in anticipo

+0

rimuovere i386 e riprovare – peko

+0

come è stata aggiunta la libreria statica? Quali sono i passi che hai seguito? –

+0

@ P.J: aggiunta la libreria, i passaggi descritti nel tutorial (ho aggiunto quel collegamento). I mezzi aggiunti al progetto includevano il file di intestazione e lo importavano. –

risposta

5

Hai propably costruito la vostra libreria per solo l'architettura del dispositivo. IOS Simulator non è un emulatore, il che significa che il codice deve essere in grado di funzionare sull'architettura del tuo Mac, che è ovviamente diversa dall'architettura del tuo dispositivo.

Poiché una libreria è precompilata (per un'architettura specifica), il codice che contiene non viene più compilato per il target corrente una volta che lo si utilizza nel progetto. Questo è il motivo per cui è necessario creare la libreria per entrambe le architetture in primo luogo.

This SO Answer spiega come raggruppare due build di libreria in un pratico "file grasso".