2015-03-02 5 views
0

Я до сих пор использовал клиентскую библиотеку API Google для Objective-C, компилируя исходные файлы непосредственно в мое приложение (как описано here). Если бы я переключился на ссылку на статическую библиотеку iOS (как описано также here), как это могло бы гарантировать, что код работает на разных архитектурах?Ссылка на клиентскую библиотеку Objective-C API Google как статическую библиотеку iOS

Например, если я следую инструкциям verbatim, я должен скомпилировать статическую библиотеку, выбирая схему (GTLTouchStaticLib) и архитектуру (например, iOS Simulator: iPhone 5). Если я выбираю симулятор как архитектуру, file libGTLTouchStaticLib.a сообщает, что архив содержит код для архитектур i386 и x86_64. Если я вместо этого выбираю физический iPhone 5, file сообщает об архитектуре armv7 и arm64.

Как обеспечить, чтобы libGTLTouchStaticLib.a, который я собираюсь перетащить в список «Связывание с библиотеками» в разделе «Связывание с библиотеками», в соответствии с инструкциями Google, содержит все (а не только некоторые) архитектуры, которые могут быть когда мое приложение переходит в жизнь? Я думаю, armv7 и arm64 достаточно для приложения, которое требует iOS 8, но я бы хотел быть уверен.)

ответ

0

Вам необходимо объединить сгенерированные двоичные файлы с помощью инструмента командной строки lipo.

Следующая tutorial о создании статической библиотеки в прошивке демонстрирует использование lipo в соответствии с разделом Universal Binaries

+0

«Следующий урок»: вы Foget добавить ссылку? И как мне создать несколько двоичных файлов, если у меня есть только одно физическое устройство, и все симуляторы используют архитектуры Intel? – Drux

+1

Да, извините. Я добавил ссылку сейчас. Вы можете использовать опцию 'xcodebuild -sdk xyz -arch abc'. Учебное пособие также демонстрирует это в разделе «Универсальные двоичные файлы». – Taha