ios - ¿Cómo verificar si una biblioteca estática está construida para 64 bits?
objective-c static-libraries (3)
Acabo de crear una biblioteca estática para iOS con la configuración de compilación para Arquitecturas configuradas en $(ARCHS_STANDARD_INCLUDING_64_BIT)
.
Quiero asegurarme de que la biblioteca .a incluya correctamente esa arquitectura, pero cuando ejecuto lipo -info
, veo:
Arquitecturas en el archivo gordo: library.a son: armv7 armv7s (cputype (16777228) cpusubtype (0))
¿Esto significa que arm64 no está incluido? Si el comando lipo no puede decirme, ¿hay alguna otra forma de decirlo?
Estoy ejecutando Xcode 5 con las últimas herramientas de línea de comandos instaladas.
Para un .framework
lipo -info myFramework.framework/MyFramework
Sí, una rebanada arm64 está allí. Para verlo, debe usar lipo
desde la cadena de herramientas de iOS, no desde el sistema host (que no conoce acerca de arm64):
xcrun -sdk iphoneos lipo -info $(FILENAME)
buen file
viejo puede hacer el truco, también:
$ file libTestFlight.a
libTestFlight.a: Mach-O universal binary with 5 architectures
libTestFlight.a (for architecture armv7): current ar archive random library
libTestFlight.a (for architecture armv7s): current ar archive random library
libTestFlight.a (for architecture i386): current ar archive random library
libTestFlight.a (for architecture x86_64): current ar archive random library
libTestFlight.a (for architecture cputype (16777228) cpusubtype (0)): current ar archive random library
Parece que nadie en Apple se preocupó de agregar el arm64 cputype al file
, sin embargo.
Curiosamente, en el iOS 7 Tech Talk Videos ("Arquitectura de aplicaciones modernas, Parte 2", PDF página 35) muestran una salida de la herramienta de archivo de trabajo: