Как создать фреймворк или библиотеку для других разработчиков, безопасный способ?

У нас есть идея для платформы или библиотеки, которая будет очень полезна для любого разработчика iOS. Поэтому мы серьезно задумываемся о переходе от разработки приложений к разработке framework / library.

Но когда мы хотим взимать плату за библиотеку / фреймворк, мы должны каким-то образом защитить код. Как мы можем создать структуру таким образом, чтобы пользователь нашей инфраструктуры не мог видеть исходный код, подобно тому, как мы не можем видеть исходный код рамок яблок? Я предполагаю, что они только отправляют файлы заголовков и какой-то странный exe-файл Unix с скомпилированной структурой.

Или если невозможно создать скомпилированную фреймворк / библиотеку, которую могут использовать другие разработчики iOS без возможности скопировать и вставить наши исходные коды, то есть ли способ обфускать код цели-c?

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

Ознакомьтесь с этими статьями (я успешно использовал первый для создания фреймворков в прошлом – более поздние статьи – это обновления оригинала):

http://www.drobnik.com/touch/2010/04/making-your-own-iphone-frameworks/

http://www.drobnik.com/touch/2010/05/making-your-own-iphone-frameworks-in-xcode/

http://www.drobnik.com/touch/2010/10/embedding-binary-resources/

Чтобы использовать фреймворк, ваши пользователи просто перетаскивают пакет .framework в Xcode. Они смогут видеть файлы заголовков, которые вы копируете в комплект (см. Статьи выше), но не источник (поскольку он не включен – только скомпилированный вывод находится в комплекте).

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


Обновить:

Проверьте ссылку сверху без добавления ниже – это гораздо более свежий и все на одной странице: http://github.com/jverkoey/iOS-Framework . В нем также излагаются проблемы с рядом других подходов. Это руководство, которому я теперь следую, когда пытаюсь вспомнить, что нужно делать при создании новой структуры. 🙂

Update2 (с выпуском Xcode 6)

Существует вариант, который вы ищете: Universal Framework for iOS !

Будет ли мой код видимым для других? A: Нет. Эта платформа будет экспортировать скомпилированный двоичный файл, чтобы каждый мог видеть внутри него. Вы можете сделать то же самое для некоторых других файлов, таких как XIB.

Зачем мне это нужно? A: Это для разработчиков / команд, которые хотят делиться своими кодами, не отображая весь код (файлы .m / .c / .cpp). Кроме того, для тех, кто хочет организовать скомпилированный код + ресурсы (изображения, видео, звуки, XIB, plist и т. Д.) В одном месте. И это также для тех команд, которые хотят работать вместе над одной базой (фреймворком).

(c) http://blog.db-in.com/universal-framework-for-ios/

Это руководство немного более современно для создания статических фреймворков iOS:

https://github.com/jverkoey/iOS-Framework

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

  • Как принудительно или отключить ориентацию интерфейса для некоторых, но не для всех UIViewController?
  • Объект, возвращенный из запроса выборки, имеет неверные данные
  • AFNetworking setImageWithURLRequest скачать прогресс
  • Изменение цвета UIPopoverController (и цвет кнопки назад)
  • Обработка символов без ascii в textField: shouldChangeCharactersInRange: replacementString:
  • Как создать TIFF на iPad
  • Основы Multitouch (3 или более пальцев)
  • Как можно создать SplitViewController программно в Swift?
  • Строка шифрования AES128 не похожа на строку .net
  • UIWebView loadHTMLString не работает в iOS5
  • На iOS, как получилось, что образ запуска Launch Image должен включать строку состояния, но iPad Launch Image не должен?
  • Давайте будем гением компьютера.