Могу ли я разработать собственную objective-C Framework для Cocoa Touch Applications?

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

Ответ 1

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

После установки шаблонов вы просто выбираете "Статический iOS Framework" при создании нового проекта, и все остальное. Он также работает с модульными тестами.

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

Ответ 2

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

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

Ответ 3

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

Посмотрите Руководство по программированию на платформе на веб-сайте Apple. Это поможет вам начать. По сути, вы должны создать проект Framework в XCode, а затем перейти оттуда.

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

Ответ 4

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

Однако существуют следующие оговорки:

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

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

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

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

Ответ 5

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

Ответ 6

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

Ответ 7

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

Ответ 8

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

Ответ 9

Вряд ли это будет работать так, как вы хотите, потому что другие разработчики не смогут использовать вашу фреймворк. fooobar.com/info/47254/... объясняет, почему.