Добавьте ".a" -библиотеку к Xcode 4 - PullRequest
0 голосов
/ 08 ноября 2011

Я уже читал много советов, как добавить существующий фреймворк в Xcode 4, например: http://www.thinketg.com/Company/Blogs/11-03-20/Xcode_4_Tips_Adding_frameworks_to_your_project.aspx

Но мой вопрос очень особенный.

Я хочу добавить библиотеку, которая имеет следующую структуру:

  • build -> Debug-iphoneos -> library.a
  • build -> Debug-iphonesimulator -> library.a
  • build -> Release-iphoneos -> library.a
  • build -> Release-iphonesimulator -> library.a

Если я хочу построить свой проект для тестирования на симуляторе, я должен скопировать библиотеку из папки «Debug-iphonesimulator» в мой проект. Если я хочу проверить это на устройстве, я должен скопировать библиотеку из папки «Release-iphoneos». Это очень громоздко!

Это хороший способ интегрировать все библиотеки в моем проекте?

Большое спасибо!

Ответы [ 2 ]

1 голос
/ 08 ноября 2011

Первым шагом является создание универсальной статической библиотеки с помощью команды lipo

lipo -create "${PROJECT_DIR}/build/${BUILD_STYLE}-iphoneos/libYourLib.a" "${PROJECT_DIR}/build/${BUILD_STYLE}-iphonesimulator/libYourLib.a" -output "${PROJECT_DIR}/build/libYourLib-${BUILD_STYLE}.a"

После этого создайте 2 разных цели (для отладки и выпуска) и добавьте в каждый правильный .a.

0 голосов
/ 08 ноября 2011

Есть еще один простой способ.Укажите путь к файлу .a в другом флаге компоновщика с соответствующей целью.

Предположим, что вы создаете приложение для устройства, оно должно ссылаться на версию устройства .a, а при создании приложения для симулятора оно должноссылка на версию симулятора на .a

Вот как вы должны указать флаг другого лайкера:

../../../testApp/DerivedData/testApp/build/Products/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME)/testApp.a
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...