将Swift添加到项目中可以大大增加规模.如何以及何时可以避免

Tho*_*rax 29 ios swift

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

我发现Swift在它使用的每个项目中嵌入了它的实际库.即使Swift库将来发生变化,这也是运行项目所必需的.

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

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

ork*_*den 31

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

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

请参阅Apple的此解释.

你可以相信你的应用程序将在未来很好地运作.事实上,您可以使用相同的应用程序回溯到OS X Mavericks或iOS 7.这是可能的,因为Xcode在您的应用程序包中嵌入了一个小的Swift运行时库.由于库是嵌入式的,因此您的应用程序使用在过去,现在和将来的OS版本上运行的Swift的一致版本

虽然确保了应用程序的运行时兼容性,但Swift语言本身将继续发展,二进制接口也将发生变化.

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

不使用Swift是保持应用规模下降的唯一方法.

由于Swift 3.0无法提供稳定的ABI,因此暂时保持不变.所以在一两年内可能会转换为2018年的Swift 5.0.

  • 我比较了Xcode Swift,Xcode Objective C,Xamarin Native和Xamarin.Forms.在我的测试中,我看到Swift在应用程序大小上增加了大约16.5 Mb.有趣的是,在我的测试中,Xamarin Native实际上比使用Swift的Xcode要小.http://anthonytietjen.blogspot.com/2016/03/xamarin-vs-xcode-ios-app-size-and-startup-speed.html (3认同)
  • 因此,Apple在文章中给出了链接的答案是:_"当二进制接口在一两年内稳定下来时,Swift运行时将成为主机操作系统的一部分,并且此限制将不再存在"_很遗憾除了等待,别无选择 (2认同)