Ответ 1
Да, есть кусок arm64. Чтобы увидеть это, вам нужно использовать lipo
из инструментальной цепочки iOS, а не из хост-системы (которая не знает о arm64):
xcrun -sdk iphoneos lipo -info $(FILENAME)
Я только что создал статическую библиотеку для iOS с настройкой сборки для архитектур, установленной на $(ARCHS_STANDARD_INCLUDING_64_BIT)
.
Я хочу убедиться, что библиотека .a правильно включает эту архитектуру, но когда я запускаю lipo -info
на ней, я вижу:
Архитектуры в жирном файле: library.a: armv7 armv7s (cputype (16777228) cpusubtype (0))
Означает ли это, что arm64 не включен? Если команда липо не может мне сказать, есть ли другой способ рассказать?
Я запускаю Xcode 5 с установленными последними инструментами командной строки.
Да, есть кусок arm64. Чтобы увидеть это, вам нужно использовать lipo
из инструментальной цепочки iOS, а не из хост-системы (которая не знает о arm64):
xcrun -sdk iphoneos lipo -info $(FILENAME)
Старый добрый 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) они показывают выход рабочего файла:
При a .framework
lipo -info myFramework.framework/MyFramework