Как проверить, создана ли статическая библиотека для 64-битной архитектуры?

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

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

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

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

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

3 ответа

Решение

Да, есть срез 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 не удосужился добавить c64 для arm64 file, еще.

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

Для .framework

lipo -info myFramework.framework/MyFramework

Другие вопросы по тегам