Advertencia de Xcode: ignorar el file libxml2.2.dylib, construido para un formatting de file no compatible que no está vinculado a la architecture

Me han asignado la tarea de agregar algunas funciones a una aplicación de iOS. Revisé la fuente en SVN para ser recibida con más de 100 advertencias (argh), afortunadamente estoy hasta el último, que es:

Advertencia Xcode

(Los bits bloqueados son el nombre del cliente …).

Creo que esta advertencia dice algo similar a: 'esta biblioteca XML no es compatible con la architecture del SO que se está vinculando en la compilation'.

Con la próxima versión, solo estamos soportando iOS5 y iPhone 4 y versiones posteriores (en lugar de versiones más bajas de iOS y versiones anteriores de iPhones).

Entonces, ¿cambio la architecture del enlace? ¿Cuál es la architecture del enlace? ¿Cómo cambio la architecture? ¿O estoy completamente en la pista equivocada?

Vale la pena mencionar que estoy ejecutando el último Xcode, he agregado el marco de la list Xcode (link binary with bibliotecas).

EDITAR

Solo recibo el post al build desde el simulador. ¡No causa ningún daño, simplemente me enciende!

Gracias por adelantado.

No enlace con libxml2.2.dylib, en su lugar enlace con libxml2.dylib. La vinculación con eso debería garantizar que siempre esté vinculado con la implementación correcta para su architecture.

Como regla general, en sus aplicaciones se vincula a la versión genérica de una biblioteca en lugar de a una versión específica. En este caso, esto significa libxml2 en lugar de libxml2.2.

Usted está vinculando a una biblioteca dinámica (simbólica a) que en el time de ejecución apuntará automáticamente a la implementación correcta para la versión actual del sistema operativo y la architecture. El enlace a la versión específica de una biblioteca no garantiza esto, y puede terminar vincular a algo que solo tiene una architecture única. Por lo tanto, durante el desarrollo, si vincula a libxml2.2.dylib al apuntar al simulador, puede estar enlazando contra algo que es i386, entonces cuando apunta a un dispositivo no puede encontrar la architecture correcta (porque está intentando usar i386 para armvWhatever , que es exactamente lo que estás diciendo que haga).

Si está intentando usar libxml2.2 , ya está disponible en Xcode. En lugar de getlo de una fuente externa (Apple no le permitiría usar una biblioteca dinámica de todos modos), agréguelo en Xcode a sus frameworks de trabajo y, luego, /usr/lib/libxml2/ agregando /usr/lib/libxml2/ en las Header Search Paths . No vincule su proyecto con un dylib que no esté provisto por Apple o que su aplicación sea rechazada. Además, la architecture i386 no es la architecture para iOS, ya que iOS usa las architectures armv7 y armv7s para las versiones más nuevas de sus dispositivos, por lo que está recibiendo la advertencia de architecture.

Básicamente, la diferencia entre libxml2.2 y libxml2 es que libxml2.2 apunta a una versión / implementación específica de libxml, mientras que libxml2 es un atajo / enlace simbólico que apunta a la última versión Y la architecture correcta de libxml2 que XCode puede encontrar. Por lo tanto, al agregar un marco como este, siempre debe agregar la 'versión general' (el enlace simbólico) de él (libxml2) en lugar de la 'versión específica' de él (libxml2.2) debido al problema exacto que está viendo.

¡Espero que esto ayude!

Eso dice que te estás uniendo a algo construido para que no sea el arm 386. Necesitará un dylib diferente para vincular o ir a la configuration del proyecto y cambiar el arco. (si está construyendo el dylib) Probablemente para include arm7 o similar.