He actualizado Xcode versión y cuando el uso de bibliotecas estáticas externas, consigo este mensaje:
ld: el archivo es universal (3 cortes) pero no contiene un (n) segmento de armv7s: / archivo / ubicación para la arquitectura clanv de armv7s: error: el comando del enlazador falló con el código de salida 1 (use -v para ver la invocación)
¿Hay alguna forma de evitar esto y agregar soporte a la biblioteca si el desarrollador de la biblioteca aún no ha actualizado su biblioteca?
ios
objective-c
xcode
ios6
static-libraries
Dafna Elazazer
fuente
fuente
Respuestas:
Si desea eliminar el soporte para cualquier arquitectura, por ejemplo, ARMv7-s en su caso, use el menú Proyecto -> Configuración de compilación -> elimine la arquitectura de "arquitecturas válidas".
Puede usar esto como una solución temporal hasta que la biblioteca se haya actualizado. Debe eliminar la arquitectura de su proyecto principal, no de la biblioteca.
Alternativamente, puede establecer el indicador de "Build Active Architecture Only" de su configuración de depuración en Sí. Deje la configuración de lanzamiento "Build Active Architecture Only" en No, para que reciba un recordatorio antes de lanzar que debe actualizar las bibliotecas de terceros que esté utilizando.
fuente
No architectures to compile for (ARCHS=i386, VALID_ARCHS=armv7).
del enlazador que solo podría resolver agregandoi386
a la lista de Arquitecturas válidas.Simplemente cambié "Construir arquitectura activa solamente" a "Sí" en la configuración de compilación del objetivo, ¡y ahora está bien!
fuente
Intente eliminar armv7s de la "Arquitectura válida" del proyecto para liberar este problema para el teléfono iOS 5.1
fuente
Acabo de publicar una solución aquí que también se aplicaría en este caso, básicamente, haces un hexadecimal buscar y reemplazar en tu biblioteca externa para que piense que es el código ARMv7s. Debería poder usarlo
lipo
para dividirlo en 3 bibliotecas estáticas, duplicar / modificar el ARMv7 y luego usarlolipo
nuevamente para ensamblar una nueva biblioteca para las 4 arquitecturas.fuente
Compatibilidad con Flurry para iPhone 5 (ARMv7s) Como mencioné en la publicación de ayer, Flurry comenzó a trabajar en una versión del SDK de iOS para admitir el procesador ARMv7s en el nuevo iPhone 5 inmediatamente después del anuncio el miércoles.
Me complace decirle que el trabajo está hecho y que el SDK ya está disponible en el sitio.
fuente
use el menú Proyecto -> Configuración de compilación ->
luego elimine armv7s de las "arquitecturas válidas". Si se ha elegido el estándar, elimínelo y luego agregue armv7.
fuente
En caso de que esto le pase a alguien. Construí mi propia biblioteca para usar con un código de terceros. Mientras lo construía para entregar, accidentalmente dejé mi iPhone 4S enchufado, por lo que Xcode construyó mi biblioteca solo para la arquitectura conectada en lugar de seguir la configuración del proyecto. Elimine todos los dispositivos conectados y reconstruya la biblioteca, vincúlela, y debería estar bien.
Espero eso ayude.
fuente
En mi caso, estaba vinculando a una biblioteca de terceros que era un poco antigua (desarrollada para iOS 6, en XCode 5 / iOS 7). Por lo tanto, tuve que actualizar la biblioteca de terceros, hacer una limpieza y compilación, y ahora se compila correctamente.
fuente