2010-03-25 2 views
1

Я создаю SDK для клиента, который включает в себя предопределенные контроллеры представлений. Каков рекомендуемый способ для упаковки всего (статические lib, .xib (s) и .png (s)) для удобства использования?Как упаковать SDK (статические lib + xib) для iPhone?

SDK, которые я использовал (например, Pinch Media), неплохо справляется только с предоставлением файлов .h и .a, которые предоставляют только доступную пользователю функцию и скрывают все остальное. Когда я прочитал документацию Apple, структура была бы идеальной, но не разрешена на iPhoneOS.

Некоторые ключевые требования:

  1. Не подвергайте источник или объект внутренностей.
  2. Быть легким в использовании & установлен.
  3. Работайте как на устройстве, так и на симуляторе.

Спасибо!

ответ

3

Рамки были бы идеальными, но, как вы сказали, на iPhone не разрешены. Я думаю, что в конце вам нужно будет предоставить как минимум 3 файла: заголовочный файл, статическую библиотеку и пакет ресурсов.

В файле заголовка будет просто весь API, который вы хотите открыть. Если у вас несколько классов, вы можете указать несколько заголовков.

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

lipo -create -output output/file/path device/file/path simulator/file/path 

С расслоением вы может создать новую цель в Xcode для создания пакета, но на самом деле это всего лишь папка. Вам также нужно будет заставить вас SDK знать, как загрузить пакет, и получить доступ к ресурсам. Однако вы не можете загружать исполняемый код из пакета; это причина, по которой рамки не работают на iPhone.

+0

Это то, что я подозревал. Как же тогда загружать наконечник из пакета ресурсов? Очевидный метод (UWiewController initWithNibName: bundle :) не работает. – tomwhipple

+0

Чтобы ответить на мой собственный вопрос в комментарии выше, ключ, похоже, заключается в создании объекта NSBundle с использованием пути (не идентификатора) и передачи его в initWithNibName: Bundle :. – tomwhipple

+0

Есть ли учебник о том, как это сделать? Это все еще не имеет смысла. Думаю, я об этом. – chrish

Смежные вопросы