iPhone - Статические библиотеки, назначение «Копировать заголовки»? - PullRequest
6 голосов
/ 27 марта 2012

Я создаю библиотеку, и хотя она отлично работает, упаковав весь мой код и поместив все файлы заголовков в папку, а затем сжав папку и статическую библиотеку, я просто не могу понять цельраздел «Копировать заголовки» в разделе «Фазы сборки».

Я прочитал все эти ссылки:

Использование статических библиотек с открытым исходным кодом

Созданиестатические библиотеки для iOS

Как создавать универсальные статические библиотеки

Stackoverflow: копировать заголовки: общедоступный или частный против проекта

Но я до сих пор не вижу смысла в настройке заголовков копий, я понимаю, что вы можете установить частный и публичный путь в настройках сборки> упаковка, и что файлы заголовков будут идти в эту папку после сборки.Но какой в ​​этом смысл? Отличается ли это чем то, чтобы не задавать один файл заголовка копии, а просто захватить файл .a, взять все мои файлы заголовков и поместить их в папку ?.Также, какова цель установки копий заголовков проекта? Так как они вообще не включены в цель?.

Ответы [ 2 ]

1 голос
/ 15 июля 2013

Работает ли сейчас фаза копирования заголовков при создании архива? Документация Apple предполагает, что эта функция не работает, и вместо этого они предложили использовать фазу сборки Copy Files. Это было исправлено в последних выпусках Xcode? https://developer.apple.com/library/ios/#technotes/iOSStaticLibraries/Articles/creating.html

1 голос
/ 27 марта 2012

Насколько мне известно, добавление заголовков в раздел «Public» этапа «Copy Headers» в точности совпадает с копированием их в папку выпуска.

Я использую его для удобства, так как автоматизирую процесс упаковки библиотеки с помощью сценария запуска (благодаря этому вопросу StackOverflow , который вы должны прочитать, если хотите предоставить универсальные библиотеки ) ,

Для этого мне просто нужно добавить мои новые публичные заголовки в раздел «Public» фазы «Copy Headers», чтобы они автоматически развертывались в моей папке выпуска с этой частью сценария:

#########
#
# Added: StackOverflow suggestion to also copy "include" files
#    (untested, but should work OK)
#
if [ -d "${CURRENTCONFIG_DEVICE_DIR}/usr/local/include" ]
then
mkdir -p "${CREATING_UNIVERSAL_DIR}/headers"
# * needs to be outside the double quotes?
cp "${CURRENTCONFIG_DEVICE_DIR}/usr/local/include/"* "${CREATING_UNIVERSAL_DIR}/headers"
fi

Я также заметил, что эти заголовки копируются в пакет при архивировании (Product -> Archive), так что, возможно, Apple впервые предложит чистый способ создания статических библиотек.

Надеюсь, это поможет

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...