Как делиться/распространять скомпилированный код Objective-C (например, JAR в Java)?

StackOverflow https://stackoverflow.com/questions/1120332

Вопрос

Я хотел бы написать код Objective-C для распространения.Как лучше всего упаковать вывод.В Java вы можете упаковать свой код в файл JAR и распространять его.Что будет эквивалентом в Objective-C?

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

Эквивалент пакетов Java в Objective-C?

Это было полезно?

Решение

Фреймворк — почти наверняка лучший вариант.Одна из действительно приятных особенностей Frameworks в OS X заключается в том, что они могут объединять исполняемый код, заголовки, метаданные, изображения, значки и т. д.в одном пакете.Кроме того, фреймворки могут быть включены в */Library/Frameworks/ или даже внутри вашего пакета приложений, чтобы полностью отделить зависимость любого другого приложения от данной версии платформы.

Apple Руководство по фреймворковому программированию — лучшее место для начала работы с фреймворками.

Создать фреймворк просто.По сути, в Xcode вы выбираете Файл > Новый проект... и выберите Framework, затем Cocoa Framework.Это создаст новый проект с целевой средой и автоматически упакует все для вас при сборке.

Не забывайте, что документация и модульные тесты — это хорошая вещь™, особенно для платформ, которые по своей природе с большей вероятностью будут использоваться несколькими клиентами, чем большая часть кода конечного пользователя.Вы можете добавить дополнительные цели в проект Xcode вашей платформы, чтобы документировать и тестировать его.

Поскольку вы ищете примеры, проверьте CHDataStructures.framework (проект, который я разрабатываю) и PSMTabBarControl.framework (который включает в себя множество дополнительных ресурсов в рамках).Оба имеют открытый исходный код и должны предоставить адекватные примеры для создания собственных.

Один совет, чтобы избавить вас от головной боли:ваши файлы заголовков не будут скопированы во встроенную платформу, если вы не нажмете на цель платформы и не измените Роль на «Общественный» (или «Частный»).

Другие советы

Вы хотите создать Framework.В Xcode есть отправная точка для создания нового проекта.Есть несколько предостережений и ошибок, но в целом процесс прост.

Редактировать:В целях разъяснения:Если вы планируете распространять его как FOSS;упаковывать это в фреймворк может быть излишним;просто распространение исходного кода может быть более разумным и простым вариантом.Но если вы хотите сохранить исходный код для себя или распространять его вместе с коллекцией соответствующих ресурсов, фреймворк определенно может быть хорошей идеей.

Повторное редактирование:Для введения см. http://developer.apple.com/documentation/MacOSX/Conceptual/BPFrameworks/

Вы не сказали, для iPhone или нет.На iPhone это должна быть .sa (статически связанная библиотека), но я думаю, что нормальный дистрибутив будет использовать .dylib или .so.

Вы можете скомпилировать его как Framework или как статическую библиотеку (я так думаю).

Программы Java выполняются в контексте виртуальной машины.Jar содержит абстрактные байт-коды, которые виртуальная машина должна преобразовать в собственный машинный код.

Objective-C, как и C, компилируется в собственный машинный код, например файл Win.exe, который может запускаться непосредственно операционной системой.

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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top