Первым делом я попытался создать статическую библиотеку, но позже я обнаружил, что она еще не поддерживается. Примечания к выпуску Apple Xcode Beta 4:
Xcode не поддерживает создание статических библиотек, включающих код Swift. (17181019)
Я надеялся, что Apple сможет добавить это в следующую бета-версию или версию GA, но я прочитал следующее в их блоге:
Несмотря на то, что обеспечивается совместимость приложений во время выполнения, сам язык Swift будет продолжать развиваться, и двоичный интерфейс также будет меняться. На всякий случай все компоненты вашего приложения должны быть собраны с одной и той же версией Xcode и компилятором Swift, чтобы обеспечить их совместную работу.
Это означает, что фреймворки должны тщательно управляться. Например, если ваш проект использует фреймворки для совместного использования кода со встроенным расширением, вы захотите собрать фреймворки, приложения и расширения вместе. Было бы опасно полагаться на двоичные фреймворки, использующие Swift, особенно от третьих лиц. По мере изменения Swift эти фреймворки будут несовместимы с остальной частью вашего приложения. Когда бинарный интерфейс стабилизируется через год или два, среда выполнения Swift станет частью операционной системы хоста, и это ограничение больше не будет существовать.
Эта новость действительно тревожит меня, человека, который пишет компоненты, которые другие разработчики могут использовать и включать в свои приложения. Значит ли это, что мне нужно распространять исходный код или ждать два года? Есть ли другой способ распространения библиотеки без разоблачения кода (политика компании)?
Обновить:
Является ли в этот момент опция обфускации кода Swift?