Как мне распространять iOS SDK в виде статической библиотеки?

Сейчас я компилирую статическую библиотеку для iOS, назовем ее libMySDK.a. Я копирую любые заголовочные файлы, которые понадобятся конечному пользователю, и помещаю их в папку с libMySDK.a. Эту папку можно перетащить в новый проект Xcode, и все будет работать так, как ожидалось, если я установлю флаг компоновщика -all_load в настройках сборки нового проекта (в разделе «Другие флаги компоновщика»).

Я никогда не распространял статическую библиотеку — это папка с несколькими заголовочными файлами и файлом .a, что вы ожидаете получить, если захотите использовать MySDK?


person Lou Zell    schedule 03.06.2011    source источник
comment
Я ожидаю получить исходный код. Почему бы просто не распространять это, а не скомпилированную библиотеку?   -  person Abizern    schedule 03.06.2011
comment
Я держу источник закрытым.   -  person Lou Zell    schedule 03.06.2011


Ответы (1)


Openfeint предоставляет свою структуру как Static Framework. Мы можем использовать фреймворк как фреймворк из iOS SDK.

Пожалуйста, взгляните на github — Eskipol/OpenFeint-iOS-Framework. Откройте проект OpenFeint и погрузитесь в цель «OpenFeint-iOS». Он имеет этапы «Построить статическую библиотеку», «Построить универсальную библиотеку», «Копировать заголовки» и «Копировать ресурсы». На этих этапах есть сценарий оболочки для создания Static Framework. Это поможет вам распространять вашу статическую библиотеку.

ОТРЕДАКТИРОВАНО:

Существенным является сценарий оболочки для этапа «Сборка универсальной библиотеки». Правильно создайте каталог фреймворка (Версии/A/Заголовки и ресурсы), создайте универсальный двоичный файл из скомпилированных статических библиотек, скопируйте заголовки и универсальный двоичный файл и правильно создайте символические ссылки.

# Create framework directory structure.
rm -rf "${FRAMEWORK}" &>/dev/null
mkdir -p "${UNIVERSAL_LIBRARY_DIR}"
mkdir -p "${FRAMEWORK}/Versions/A/Headers"
mkdir -p "${FRAMEWORK}/Versions/A/Resources"

# Generate universal binary from desktop, device, and simulator builds.
lipo "${SIMULATOR_LIBRARY_PATH}" "${DEVICE_LIBRARY_PATH}" -create -output "${UNIVERSAL_LIBRARY_PATH}"

# Move files to appropriate locations in framework paths.
cp "${UNIVERSAL_LIBRARY_PATH}" "${FRAMEWORK}/Versions/A"
cd "${FRAMEWORK}"
ln -sf "A" "Versions/Current"
ln -sf "Versions/Current/Headers" "Headers"
ln -sf "Versions/Current/Resources" "Resources"
ln -sf "Versions/Current/${PRODUCT_NAME}" "${PRODUCT_NAME}"
person Kazuki Sakamoto    schedule 03.06.2011
comment
Спасибо Кадзуки! Я отмечаю это как ответ. На случай, если кто-то найдет это через Google, мой оригинальный подход тоже приемлем. Flurry SDK поставляется с одним файлом .a и заголовком FlurryAPI.h. Я думаю, что подход со статической структурой имеет некоторые преимущества в отношении управления версиями, но я еще не уверен, в чем они заключаются! - person Lou Zell; 03.06.2011