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