在Xamarin中使用Debug模式构建的简单“Hello World”程序的大小为50mb,甚至不包括已安装的Monoruntime和其他内容。
虽然我猜测发布版本较小,但我还希望减少调试版本的大小,而不会丢失任何调试功能,以便我更快地重建我的应用程序。
那么,为什么Xamarin调试构建如此之大,如何在不牺牲调试功能的情况下减小它们的大小呢?
答案 0 :(得分:6)
答案 1 :(得分:0)
<强> Xamarin.Android 强>
我们在这里有一个指南,详细介绍了Xamarin.Android应用程序大小:
https://developer.xamarin.com/guides/android/advanced_topics/application_package_sizes/
<强> Xamarin.iOS 强>
Xamarin应用程序大小略大于Objective-C应用程序,因为Mono框架是应用程序包的一部分。
您构建的体系结构也将增加应用程序大小,因为将为每个体系结构创建二进制文件 - 我建议您仅为ARMv7和ARM64构建,省略ARMv7,除非您需要利用该体系结构提供的特定优化。
您可以通过将链接器选项设置为链接发布配置中的所有程序集来减少应用程序大小:
https://developer.xamarin.com/guides/ios/advanced_topics/linker/#Link_all_assemblies
添加到项目中的每个nuget包也会增加应用的大小。但是,使用链接器时,其影响将取决于您实际使用的包的数量。在链接过程中,任何未使用的东西都会被剥离。
对于统一的应用程序(支持多种体系结构),Apple正在分别考虑每个体系结构的App Store下载大小限制。因此,如果您的可交付成果为100mb(例如,每个架构50mb),Apple会将其视为50mb下载,而不是整体100mb。
您还可以通过查看应用中包含的其他资源(例如图片)来缩小应用尺寸,并查看是否可以通过缩小或增加压缩来节省空间。
作为最后一点,App Store会为您的应用添加自己的加密功能,这可以显着增加整体尺寸。由于加密模糊了模式,因此重新压缩的应用程序将更大。影响因app而异。将数据(如长字符串或表格)移出代码并移入外部文件将使最终下载更小,因为这些文件将更有效地压缩。