2013-09-24 2 views
71

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

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

Архитектуры в файле жира: library.a являются: ARMv7 armv7s (CPUTYPE (16777228) cpusubtype (0))

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

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

ответ

114

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

xcrun -sdk iphoneos lipo -info $(FILENAME) 
+1

Мне любопытно узнать о различии между/usr/bin/lipo и липкой xcrun's. Похоже, что они не одно и то же. – pshah

+2

@pshah По словам Стивена, похоже, что/usr/bin/lipo является версией Lipo для Mac, а липо Xcrun - липо XCode. Поэтому обновление до XCode 5 означало получение нового липо через xcrun. –

+23

Предположительно, потому что один вышел за другим, «липо», который поставляется с v10.9, кажется, распознает arm64 изначально. Не нужно ничего вызывать из Xcode. Запуск просто 'lipo -info $ (FILENAME)' сообщал 'arm64' среди других для соответствующей библиотеки для меня, когда тестировался. – Tommy

62

старый добрый 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 не хотелось добавить arm64 cputype в file.

Интересно, что в IOS 7 Tech Talk видео ("Разработка архитектуры Современные приложения, часть 2", PDF страница 35) они показывают выходной файл преобразования инструмента рабочего в:

enter image description here

+1

какая версия ОС вы? Я на 10.9.1, а «файл» перечисляет только cputype вместо arm64. –

+0

Я не вижу arm64 в вашем примере вывода, что было то, что у меня возникли проблемы с просмотром –

+1

по состоянию на 10.9.2 файл не отображается arm64 – shul

14

Для более .framework

lipo -info myFramework.framework/MyFramework

Смежные вопросы