Да, можно создавать фреймворки, чтобы пользователь фреймворка не мог видеть исходный код.
Ознакомьтесь с этими статьями (я успешно использовал первую для создания фреймворков в прошлом - более поздние статьи являются обновлениями оригинала):
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/