我有一个用Objective-C编写的小应用程序。它大小就像3 Mb。 当我添加一个Swift文件时,我的存档大小增长到10 Mb。
我发现Swift在其使用的每个项目中嵌入了它的实际库。即使Swift库将来发生变化,这也是运行项目所必需的。
但是8兆字节对于小型项目来说是一个巨大的开销。也许有一些关于Swift何时会获得将嵌入OS的稳定库的信息?
或者也许有一些标志可以添加到项目中,迫使编译器使用嵌入在iOS中的标准Swift库?
答案 0 :(得分:31)
自从6.0 beta版以来,几乎每次发布Xcode之后都必须调整Swift源代码。运行时已在编译器的同时发生了变化。 iOS无法使用标准的swift库,但必须使用应用程序编译和链接的库。
您可以相信您的应用将在以后很好地运作。事实上,您可以使用相同的应用程序回溯到OS X Mavericks或iOS 7。这是可能的,因为Xcode在您的应用程序包中嵌入了一个小的Swift运行时库。由于库是嵌入式的,因此您的应用程序使用在过去,现在和将来的操作系统版本上运行的一致版本的Swift
虽然确保了应用程序的运行时兼容性,但Swift语言本身将继续发展,二进制接口也将发生变化。
随着Swift的变化,这些框架将与您应用的其余部分不兼容。当二进制接口在一两年内稳定时,Swift运行时将成为主机操作系统的一部分,并且此限制将不再存在
不使用Swift是降低应用规模的唯一方法。
从Swift 3.0 won't deliver a stable ABI开始,暂时保持不变。所以在一两年内可能会转换为2018年的Swift 5.0。