Подтвердить что ты не робот

Библиотека для приложений iOS и OS X?

Некоторое время я убивал свободное время, создавая инструментарий/библиотеку 2D-игр. Он написан в Objective C и состоит из системы рендеринга OpenGL и цельной группы AI, кода физики, множества специализированных контейнеров и других связанных с игрой вещей. Помимо механизма просмотра на основе OpenGL (очевидно), большая часть этого кода должна быть легко переносимой в iOS, поскольку она использует только Foundation Framework и эту структуру представляется в iOS. Пока я тестировал только различные компоненты с помощью Cocoa NSOpenGLView, но теперь я хочу создать библиотеку OS X/iOS.

Мой вопрос:

Какая лучшая стратегия для создания библиотеки Objective-C, которая может быть интегрирована в приложения iOS или OS X?

Диалоговое окно "Новый проект" Xcode предлагает только:

iPhone OS; Библиотека:
 - Cocoa Нажмите Статическую библиотеку.

Mac OS X, Framework и библиотека:
 - Cocoa Структура
 - Cocoa Библиотека
 - Пакет
 - Библиотека BSD C
 - Библиотека STL С++
 - Библиотека JNI

На первый взгляд ни один из них, похоже, не предназначен для создания библиотеки, которая может быть интегрирована в приложения OS X или iOS.

4b9b3361

Ответ 1

Ну, наконец, я нашел правильный набор условий поиска Google, поэтому, чтобы ответить на мой собственный вопрос (DOH!), кажется, что можно поделиться кодом, по крайней мере, между приложениями iPhone и, возможно, приложениями iPhone и OS X в пределах определенные ограничения. Вы должны создать "статическую библиотеку" и использовать "ссылки на перекрестные ссылки":

http://www.clintharris.net/2009/iphone-app-shared-libraries/
http://www.amateurinmotion.com/articles/2009/02/08/creating-a-static-library-for-iphone.html
http://zetetic.net/blog/2010/02/15/building-static-libraries-to-share-code-on-iphone-and-mac-os-x-projects/
http://weston-fl.com/blog/?p=808

Не тестировал это, но выглядит многообещающим.

Ответ 2

Вы можете сделать это с помощью Целей.

Создайте новый проект для библиотеки Cocoa. Затем добавьте новую цель для статической библиотеки iOS. Когда вы создаете новые файлы, убедитесь, что они добавлены к соответствующим целям (т.е. Предположительно как в вашем случае), так и при необходимости настройте параметры каждой целевой сборки.

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