Как проверить, построена ли статическая библиотека для 64-битного?

Я только что создал статическую библиотеку для iOS с настройкой сборки для архитектур, установленной на $(ARCHS_STANDARD_INCLUDING_64_BIT).

Я хочу убедиться, что библиотека .a правильно включает эту архитектуру, но когда я запускаю lipo -info на ней, я вижу:

Архитектуры в жирном файле: library.a: armv7 armv7s (cputype (16777228) cpusubtype (0))

Означает ли это, что arm64 не включен? Если команда липо не может мне сказать, есть ли другой способ рассказать?

Я запускаю Xcode 5 с установленными последними инструментами командной строки.

Ответ 1

Да, есть кусок arm64. Чтобы увидеть это, вам нужно использовать lipo из инструментальной цепочки iOS, а не из хост-системы (которая не знает о arm64):

xcrun -sdk iphoneos lipo -info $(FILENAME)

Ответ 2

Старый добрый file тоже может сделать трюк:

$ 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

Похоже, что никому в Apple не хотелось добавлять cageype arm64 в file.

Интересно, что в iOS 7 Tech Talk Videos ( "Архивирование современных приложений, часть 2", стр. 35) они показывают выход рабочего файла:

enter image description here

Ответ 3

При a .framework

lipo -info myFramework.framework/MyFramework