У нас есть идея фреймворка или библиотеки, которая будет очень полезна любому разработчику iOS. Поэтому мы серьезно думаем о переходе от разработки приложений к разработке фреймворков / библиотек.
Но когда мы хотим взимать плату за библиотеку / фреймворк, мы должны как-то защищать код. Как мы можем построить фреймворк таким образом, чтобы пользователь нашего фреймворка не мог видеть исходный код, подобно тому, как мы не можем видеть исходный код фреймворков Apple? Я думаю, они отправляют только файлы заголовков и какой-то странный exe-файл Unix с скомпилированной структурой.
Или, если невозможно создать скомпилированный фреймворк / библиотеку, которую могут использовать другие разработчики iOS, не имея возможности копировать и вставлять наши исходные коды, то есть ли способ обфускации кода objective-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
:!(c) http://blog.db-in.com/universal-framework-for-ios/
источник
Это руководство немного позже для создания статических фреймворков iOS:
https://github.com/jverkoey/iOS-Framework
источник
Существует также шаблон для XCode 4 , который позволит вам создавать проекты статической платформы iOS.
источник