2013-12-14 3 views
3

Я из Windows, фона, и я привык к созданию SDKs путем создания (.dll) s, а затем распределяя все библиотеки и документацию..dll Эквивалент на Mac OS X

Итак, если пользователь хочет его использовать, он добавляет ссылку на библиотеку и использует ее. Тем не менее, на Mac я работаю над SDK, и мне нужен способ , создающий и распространение Mac-библиотеки.

(я хочу создать библиотеку в Objective-C) Пожалуйста, помогите мне :)

+0

См. Http://stackoverflow.com/questions/7250302/how-do-third-party-libraries-work-in-objective-c-and-xcode/7251559#7251559 – bryanmac

ответ

2

Если вы создаете библиотеку Mac, у вас есть либо вариант creating a dylib, который включает в себя только скомпилированный двоичный файл для библиотеки, или creating a framework, которая включает в себя скомпилированный двоичный файл, а также заголовки и другой пакет ресурсов, используемых библиотеки в одном пакете. Рамки являются предпочтительным методом распространения библиотек для Mac.

Если вы создаете iOS-библиотеку, iOS не поддерживает динамические библиотеки любого типа (без dylibs или фреймворков), поэтому вы застряли с creating static libraries, чтобы распространять ваш код.

+0

Я создаю библиотеку Mac (ты поймал меня). Я попытался создать «фреймворк», но не смог. (Даже с настройками, описанными в разных статьях.) Можете ли вы, пожалуйста, направить меня? – weirdpanda

+0

На каком этапе вы столкнулись с проблемой? Связанная документация Apple на моем посте довольно обширна. – indragie

+0

Я попытался создать фреймворк с настройками, описанными в разных статьях. Сборка прошла успешно, и я включил ее в свое приложение, когда я запустил его: он выдает исключение, говорящее «изображение не найдено». Пробовал использовать «otool», бесполезно. Не могли бы вы посоветовать мне, как создавать и использовать рамки с нуля? – weirdpanda

0

Оба Mac и IOS имеют динамически подключаемые библиотеки. Их просто не называют. Обычно они просто называются Shared Libraries, и они обычно обернуты в Framework.

К сожалению, iOS ограничивает использование общих библиотек в системных библиотеках и не позволяет устанавливать разделяемые библиотеки на устройствах, не связанных с джейлбрейком.

Обе платформы также поддерживают статические библиотеки.