Xamarin iOS应用程序是不合理的膨胀?

我正在使用Xamarin iOS开发一个相当简单的应用程序,我为.app文件获得的最小尺寸是13.5 MB。

我已经执行了所有推荐的优化 – 没有调试符号,LVVM代码生成,thumb-2,链接所有程序集,仅单一体系结构(ARMV7)。

第一个问题是,我的13.5 MB听起来像Xamarin iOS的预期,或者我可能做错了什么?

第二个问题是,Xamarin iOS添加到等效的本机实现(大致)多少额外的大小开销?

第三个问题是,大概有多小的Hello World应用程序可以编译成使用Xamarin iOS?

第四个问题是,本地Hello World应用程序的编译大致有多小?

.dSYM是包含调试符号的目录。 这不是您作为应用程序的一部分(向最终用户)发送的内容。 请注意,即使在非调试版本中也会生成此问题,因为它允许您对崩溃报告(来自运行发布二进制文件的最终用户)进行符号化。

对于实际的应用程序大小,您需要查看.app目录。

通过观看今年Evolvevideo高级iOS构建机制,您可以学习相当多的技巧来减少应用程序的大小(和构建时间)。 这也将回答你的其他问题。

正如人们所预料的那样,Xamarin应用在发布模式下要大一些。 作为一个例子,从两个运送应用程序查看我的二进制文件,二进制+ dll大约是12米和18米(我想我需要调查为什么18米的那个更大……)。 我猜想如果我在目标c中做了这些,那么从过去构建原生应用程序的经验来看,它们的大小只有一半。

如果您正在运行调试硬件构建,那么它们是巨大的 。 对于二进制+ dll,上面的12m示例跳转到96M(?!)。 在我检查这个之前,我脑子里已经把它们的大小增加了一倍来处理软件调试器,但我想还有很多其他的废话,我不知道。