ios objective-c static-libraries lipo

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: