статические библиотеки iPhone - PullRequest
1 голос
/ 22 октября 2010

У меня проблемы с созданием статических библиотек.

Допустим, у меня есть статическая библиотека A, которую я создал, и я включил ее в статическую библиотеку B с соответствующими заголовочными файлами.Мне нужно создать статическую библиотеку C, которая будет моей последней библиотекой, и она должна включать статическую библиотеку B, которая неявно включает статическую библиотеку A. Поэтому мне нужно скрыть обе детали реализации библиотеки A и B в библиотеке C, но она должнане виден конечному пользователю.Будет предоставлен только интерфейс.

1) Допустим, моя статическая библиотека A использует некоторые зависимости, которые есть у некоторых библиотек в SDK.Так что мне нужно импортировать в мой окончательный проект, хотя я включил библиотеку C?

В настоящий момент у меня возникают проблемы со сборкой, когда я пытался выше.

2) Можем ли мы связать сторонние статические библиотеки внутри наших статических библиотек и распространять только нашу библиотеку?

3) Допустим, мы загружаем некоторый сторонний код.Используя это, мы создаем статические библиотеки.Можем ли мы распространять статическую библиотеку, используя сторонний код.Если да, то нужно ли выставлять код?

4) Как статическая библиотека принимает в магазине приложений.Это как обычный процесс?(Я имею в виду пакеты проектов со статическими библиотеками)

Спасибо,

С уважением,

Дильшан

1 Ответ

4 голосов
/ 22 октября 2010

Ничего себе.Четыре вопросаЕсли бы я только мог получить 4х повторений.:)

  1. Да, вам нужно включить фреймворки в проект приложения.Связывание каркаса в статической библиотеке создает только ссылки на символы, которые не существуют.Они должны быть решены во время ссылки на приложение путем ссылки в интегрированной среде на конечное приложение.
  2. Я полагаю, вы думаете о продаже SDK статических файлов lib и заголовочных файлов.Да, технически возможно связать все это в одну гигантскую библиотеку (подробности см. ar (5) ), отправить библиотеку и выбрать файлы заголовков, но см. Ответ № 3.
  3. Зависит от лицензии на стороннюю библиотеку.Если у вас есть вопросы, обратитесь к юрисконсульту.
  4. Большинство приложений имеют статическую библиотеку, связанную с приложением.Например, подавляющее большинство бесплатных приложений включают AdMob или аналогичные рекламные пакеты, которые распространяются в виде статической библиотеки.Статическая библиотека сама по себе не нарушает политику отправки Apple, но библиотека может нарушать политику, например, в том числе недокументированные API.Если статическая библиотека нарушает политику отправки, приложение, которое ее использует, будет отклонено, даже если приложение не использует эту функцию.

Кстати, вы не можете полностью «спрятать» интерфейсыбиблиотеки A и B (из вашего примера.) Если бы вы могли, Apple бы и не смог бы использовать недокументированные API.Все, что вы действительно можете сделать, это оставить их вне заголовков и документации.

...