2013-03-23 2 views
4

У меня есть проект Xcode (foo), который создает статическую библиотеку (libfoo.a) с некоторыми важными этапами предварительной/пост-сборки. Традиционно, когда я использую эту библиотеку в другом проекте, я добавляю foo.xcodeproj в качестве подпроекта в свой основной проект, а затем подключаю настройки зависимостей сборки в основном проекте.Как создать PodSpec для проекта с целью статической библиотеки?

Я ищу, чтобы сделать это проще с CocoaPods, но я не уверен, что он предназначен для этого. Предполагается ли я скопировать настройки сборки из проекта foo в спецификацию pod, чтобы CocoaPods мог построить ее так, как она хочет? Как насчет моих шагов до/после сборки?

Информация о создании Pods для закрытого источника pre-compiled libraries как и TestFlightSDK, но я не хочу прекомпилировать свою библиотеку.

+0

Вы хотите отправить только файлы .a и .h, а не проект Xcode, если я правильно понял? –

ответ

0

Используя pre_install hook (0.17 документов с незначительными изменениями в синтаксисе), вы можете выполнить любое действие сборки, которое вам нужно.

Использование этого крючка не рекомендуется в мастер-репо, однако для частных спецификаций оно поддерживается.

+0

Придумайте взлом, но это сработает. Благодарю. – brianpartridge

+0

Из любопытства, что там, где вы ожидаете чистой реализации? – Fabio

+0

В идеале я мог бы указать файл xcodeproj и цель, а проект Pods вытащил бы его как подпроект и установил бы эту цель как зависимость. Таким образом, когда libPods.a строит, он строит и статически связывает результат моей цели. Все мои шаги сборки будут выполняться, и никакая дополнительная работа не требуется от исполнителя проекта. – brianpartridge

0

С помощью Cocoapods вам не нужно беспокоиться о цели, как таковой. Он создает новый проект со всеми исходными файлами из вашей библиотеки и создает единый libPods.a, который включает в себя все зависимостей Pod.

Если вы создадите Podspec с правильными исходными_файлами и public_header_files, он должен просто работать.

+0

Да, я понимаю, как это работает с libPods.a и т. Д. Меня беспокоит то, что для процесса сборки есть больше шагов, чем просто компиляция исходных файлов с некоторыми флагами компилятора (например, генерация кода). Я хочу, чтобы мой полный процесс сборки выполнялся, а не только компиляция. – brianpartridge

0

Может использовать prepare_command крюк (documentation) и в нем изменить свой Xcode проект, используя рубин драгоценный камень xcodeproj (xcodeproj site), который используется CocoaPods. Я не уверен, но, вероятно, можно добавить скрипты сборки с ним.

Не уверен, что это принято или нет для podspecs в публичном репо.

0

Похоже, там уже ответить вам: Create podspec to ship static library

Есть оба способа Выявленные (как .a + заголовки библиотеки, или как .framwerork)

Подумайте .framework является предпочтительным способом доля.