2011-10-24 11 views
15

Tengo algunas bibliotecas estáticas que he creado para usarlas en las arquitecturas de armv7. Cuando trato de usarlos en un proyecto iOS que pruebo en el simulador de iphone 5.0, recibo errores que me dicen acerca de undefined symbols for architecture i386 en mis bibliotecas estáticas.El simulador de iOS en mac ejecuta arquitectura i386, no armv7?

Supongo que esto significa que el simulador de iphone quiere compilar bibliotecas para i386? Entonces, ¿qué sentido tiene el simulador? ¿Por qué no emula también la arquitectura de armv7?

Entonces, ¿la única manera en que puedo probar mis bibliotecas estáticas es conectar un dispositivo iOS físico y ejecutarlo?

¿O lo entendí mal?

+0

Este problema es por qué el proyecto Android utiliza QEMU, un emulador . Es mucho más lento que el simulador iOS. –

Respuesta

26

Supongo que esto significa que el simulador de iphone quiere que las bibliotecas compilen para i386? Entonces, ¿qué sentido tiene el simulador? ¿Por qué no es también emular la arquitectura de armv7?

Has respondido tu propia pregunta. Es un simulador , no un emulador . Por lo tanto, es un programa Mac OSX que se ejecuta en la arquitectura i386. Si compila sus bibliotecas estáticas para i386 también, podrá usarlas en el simulador.

9

No estoy muy seguro, pero i386 es para Simulador y ARMv7 es para dispositivos que ha conectado a la máquina.

4

Puede compilar la aplicación a través de la herramienta de línea de comandos de Xcode utilizando la arquitectura i386 (también hay una forma de ejecutarlo en la interfaz de usuario de Xcode modificando la configuración de compilación).

xcodebuild -sdk iphonesimulator6.1 -arch i386 VALID_ARCHS="i386 armv7 armv7s" clean install 

Ejecute este comando en el directorio que tiene el archivo projectName.xcodeproj.

He aquí un desglose de la secuencia de comandos:

-sdk iphonesimulator6.1 // Build the app on iPhone simulator 6.1 
-arch i386 // Build your app using i386 architecture 
VALID_ARCHS="i386 armv7 armv7s" // Specify these architectures are valid 
clean install // Clean all the builds then re-build and install 
+0

Gracias, esto funcionó para mí para los nuevos requisitos en Open Graph de Facebook al enviar objetos para su revisión – estemendoza

0

Si quieres probar simuladores con i386 ir a por = < iPhone 5.

Cuestiones relacionadas