Pregunta

Hasta Xcode 4 final (estaba usando 3.latest y 4 gm para el tiempo que estaba disponible) esto no sucedió. Cuando actualicé a la versión final de XCode 4, comencé a recibir un error de enlace al intentar vincular la versión ARMV7 con mi biblioteca Non ARMV7 (mi proyecto está configurado con las arquitecturas válidas estándar ARMV6 ARMV7 estándar):

ld: warning: ignoring file ../bin/iOS static/arm/libssl.a, file was built for archive which is not the architecture being linked (armv7)
ld: warning: ignoring file ../bin/iOS static/arm/libcrypto.a, file was built for archive which is not the architecture being linked (armv7)
Undefined symbols for architecture armv7: -- list of symbols --

La versión ARMV6 se compila bien, pero el proceso de compilación general falla con 77 errores de enlace.

Entiendo que este es el comportamiento esperado, no se vinculará hacia ARMV7 con una LIB ARMV6. La solución está estableciendo mi proyecto en ARMV6 solamente. Mi pregunta aquí es: ¿por qué estaba funcionando esto en las versiones anteriores de Xcode?

Si solo me puse en ARMV6, empiezo a obtener esta advertencia:

Check dependencies

[BWARN]warning: all apps should include an armv7 architecture (current ARCHS = "armv6").

No me gusta ver advertencias :-) ¿Alguien tiene problemas similares?

Gracias,

Fernando

¿Fue útil?

Solución

Acabo de convertir la arquitectura de compilación activa solo en sí en el proyecto -> Configuración de compilación -> pestaña Arquitecturas.

Otros consejos

En iOS SDK 4.3, parece que el enlazador simplemente se negará a usar una biblioteca ARMV6 en un binario ARMV7; este no era el caso antes.

Por eso tuve que actualizar el http://code.google.com/p/ios-static-libraries/ Proyecto para generar versiones ARMV6 y ARMV7 de las bibliotecas.

He agregado el marco de terceros con algunas clases de demostración en el proyecto, pero una vez lo implementé con éxito, eliminé esas clases de demostración y desde entonces comenzó al error comenzando a surgirError"LD: ........., el archivo es universal pero no contiene una porción (n) ARMV6 para arquitectura ARMV6"

Después de rascarme la cabeza durante todo un día, encontré esta solución a la mañana siguiente, tal vez, tal vez útil para los compañeros de iPhone, porque sé el dolor

Objetivos-> "su objetivo de proyecto"-> Obtener información-> Build Architecture activo solo establecido en sí

Eso es todo..

Tenía el mismo problema. Pero la razón fue diferente, supongo. Estaba usando la biblioteca. Un archivo creado para simulador e intentando ejecutarlo en el dispositivo. Llegué a saber que necesito diferentes archivos .a para simulador y dispositivo. Espero que esto ayude a alguien ;)

Aunque todavía no sé por qué esto comenzó a suceder solo en la versión final de Xcode 4, descubrí que mis libs externos (SSL y Crypto) se compilaron con ARMV6 y ARMV7 en el proyecto de código de Google hace muy pocos días:

http://code.google.com/p/ios-static-libraries/

Esto solucionará el problema si define dos rutas de búsqueda de biblioteca diferentes: una para ARMV6, una para ARMV7.

Gracias,

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top