添加Swift项目实际上增加了大小。 如何以及何时可以避免

我有一个用Objective-C编写的小应用程序。 这是3 Mb的大小。 当我添加一个Swift文件时,我的存档的大小增长到10 Mb。

我发现Swift在每个使用的项目中都embedded了实际的库。为了能够在Swift库将来改变的情况下运行该项目,这是必要的。

但是8兆字节对于小型项目来说是一个巨大的开销。 也许有一些关于什么时候Swift将获得将被embedded到OS中的稳定库的信息?

或者也许有一些标志可以被添加到项目中,迫使编译器使用embedded在iOS中的标准Swift库?

斯威夫特仍在改变。 所以目前运行时必须包含在每个应用程序中。 一旦Swift的开发速度放缓,苹果可能会在iOS中包含Swift运行时。

自从6.0 Beta版以来,Swift源代码在Xcode几乎每次发布之后都必须进行调整。 运行时已经在编译器的同时发生了变化。 iOS不能使用标准的swift库,但必须使用应用程序编译和链接的那个库。

看到苹果的这个解释 。

你可以相信,你的应用程序将在未来运行良好。 实际上,您可以使用相同的应用程序回到OS X Mavericks或iOS 7。 这是可能的,因为Xcode在您的应用程序包中embedded了一个小型Swift运行时库。 由于该库是embedded式的,因此您的应用程序将使用运行在过去,现在和将来的操作系统版本上的一致版本的Swift

尽pipe您的应用程序的运行时兼容性得到了保证,但Swift语言本身将继续发展,二进制接口也将发生变化。

随着Swift的变化,这些框架将与您的应用程序的其余部分不兼容。 当二进制接口在一两年内稳定后,Swift运行时将成为主机操作系统的一部分,这个限制将不复存在

不使用Swift是保持应用程序缩小的唯一方法。

由于Swift 3.0不能提供稳定的ABI ,所以暂时保持不变。 所以在一两年内可能转化为2018年的Swift 5.0。