由swift生成的IPA非常大,大约5MB

我刚刚创build了一个简单的项目,使用swift语言,然后我编译和存档它生成.ipa文件。 IPA文件是如此之大,大约是5 MB。

那里是对的(没问题)? 当我在Objective-C中创build它时,它只有大约500kb。

是的,这是正确的。 包含整个Swift语言的库必须embedded到IPA中。 这些库是应用程序的一部分,而不是系统的一部分 – 因为Swift即使在向后兼容的情况下也必须工作,部分原因是它不断地变化(独立于系统更新),部分是为了在iOS 7上工作系统从来没有听说过Swift)。 他们大小约5MB。

为了扩大马特的答案,这里是一个关于兼容性的Swift博客的引用:

您可以相信,您的应用程序将在未来运行良好。 […]这是可能的,因为Xcode在您的应用程序包中embedded了一个小型的Swift运行时库。 由于该库是embedded式的,因此您的应用程序将使用运行在过去,现在和将来的操作系统版本上的一致版本的Swift。

因此,如果您的最新应用程序版本是使用Xcode 6.0构build的,并且您的应用程序的用户正在运行iOS 8.1,并且在您的应用程序中引入了对Swift所做的更改,则您的应用程序不会由于iOS更新而中断。 如果你的应用程序只是使用系统库,它可以。

这使Swift的开发人员可以更快地进行迭代,而无需在每个版本之间build立向后兼容性。

另外一个警告:

尽pipe您的应用程序的运行时兼容性得到了保证,但Swift语言本身将继续发展,二进制接口也将发生变化。 为了安全起见,应用程序的所有组件都应该使用相同版本的Xcode和Swift编译器来构build,以确保它们一起工作。