Могу ли я разработать собственную платформу Objective-C для сенсорных приложений Cocoa? - PullRequest
19 голосов
/ 19 августа 2009

Можно ли создать собственную оболочку Coca Touch для obj-C, которую могут использовать другие разработчики? И кроме того, вы можете защитить эту структуру?

Ответы [ 9 ]

17 голосов
/ 05 апреля 2011

Я создал шаблоны для Xcode 4, которые позволяют вам создавать универсальные платформы iOS (которые работают как на устройстве, так и на симуляторе).

После того, как шаблоны установлены, вы просто выбираете «Static iOS Framework» при создании нового проекта, и он делает все остальное. Также работает с юнит-тестами.

https://github.com/kstenerud/iOS-Universal-Framework

14 голосов
/ 19 августа 2009

Вы можете создать статическую библиотеку. Для этого есть возможность выбора проекта XCode. Вы должны будете распространить скомпилированный статический файл библиотеки и файлы заголовков пользователям вашей библиотеки. Ваши фактические файлы реализации (.m) не должны распространяться.

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

6 голосов
/ 19 августа 2009

Фреймворки в Objective C, как правило, представляют собой просто код C / ObjC и набор классов, ничего удивительного. Таким образом, вы можете создать свой собственный, если хотите, а затем просто включить его в свой проект при его создании. IPhone не заботится о разнице, он просто знает, как поместить весь этот код в ваше приложение вместе со всем остальным.

Ознакомьтесь с Framework Programming Guide на веб-сайте Apple. Это поможет вам начать. По сути, вы создадите проект Framework в XCode, а затем перейдете оттуда.

Что касается "защиты" вашей платформы, я предполагаю, что вы имеете в виду сделать ваш код нечитаемым. Я не уверен, если и как вы можете это сделать, но, возможно, руководство Apple что-то скажет об этом.

3 голосов
/ 08 октября 2010

Да, вы можете создавать рамки для использования с Cocoa Touch.

Однако есть следующие предостережения:

  1. должен быть статически связанной библиотекой, без динамической загрузки (dyld) для нас
  2. должна быть комбинированной (липо) библиотекой для i386 (симулятор), arm6 и arm7
  3. вам нужно взломать пакетный проект в фреймворк
  4. вы должны встраивать (маленькие и несколько) изображений в библиотеку, чтобы разработчику не приходилось возиться с ресурсами, а просто перетаскивать их в свой проект
  5. ... или если у вас большое и много изображений, создайте связку с этими

У меня есть руководства по этим вопросам на моем сайте.

1 + 2 = http://www.drobnik.com/touch/2010/04/universal-static-libraries/

Другие ссылки, которые вы должны Google, потому что этот сайт не позволяет мне публиковать более одного URL.

2 голосов
/ 19 августа 2009

Вы можете сделать статическую библиотеку доступной как двоичную (то есть элементарную «защиту») для третьих сторон, но не динамическую, так как политика Apple App Store запрещает динамическое связывание.

1 голос
/ 20 августа 2009

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

0 голосов
/ 21 августа 2015

При создании нового проекта перейдите на iOS> Framework & Library> Cocoa Touch Framework, это так просто. После успешной компиляции .framework будет создан в папке «Продукты» в XCode. Щелкните правой кнопкой мыши, чтобы отобразить в Finder, и вы сможете найти вывод.

0 голосов
/ 20 августа 2009

Маловероятно, что это сработает так, как вы хотите, потому что другие разработчики не смогут использовать ваш фреймворк. Этот вопрос о переполнении стека объясняет почему.

0 голосов
/ 19 августа 2009

Если вы собираетесь это сделать, на мой взгляд, JSON.framework - отличный пример для подражания. Скрывать / запутывать исходный код - это отдельная история, и совершенно другой вопрос,

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...