自上次使用相同代码构建以来Xamarin iOS应用程序大小增加60%

时间:2017-05-04 12:04:56

标签: xamarin xamarin.ios xamarin.forms

我有一个Xamarin Forms应用程序,目前在我在2016年10月构建和提交的App Store上(我假设当时最新版本的Xamarin Studio和Xamarin.iOS)。该应用程序在App Store上的大小为50 MB。

在对应用程序进行一些更新后,我现在构建它(AppStore配置,然后存档),大小为82 MB。由于这个气球的大小混淆了,我切换回了App Store中当前版本的git标签。我可以为2016年10月发布的版本构建相同的标记/版本/代码,它的App Store大小现在为80 MB。

我使用的是最新的Xamarin Studio(6.3 build 863),Xamarin.iOS(10.8.0.175)等。

为什么尺寸增长了60%?没有更改应用程序代码或库,只有更新版本的Xamarin Studio和Xamarin.iOS。我如何弄清楚这里发生了什么?我可以在我的设备上进行Add-Hoc构建,看到它只占用了大约55 MB,非常接近我从App Store看到的内容。

另外,请注意我不是在比较.ipa大小。我正在比较"估计的App Store大小"归档构建后,从Xamarin Studio中的归档屏幕显示。通过应用程序加载程序将签名的构建提交到iTunes Connect并通过iTunes Connect验证后,反映出相同的大小差异。活动>所有构建> App Store文件大小。

2017年9月5日更新

不确定发生了哪些变化,但现在使用最新版本的Xamarin iOS,版本:10.12.0.20(刚刚更新),我的应用程序大小现在已经退回到60mb范围内......没有改变任何其他内容。

4 个答案:

答案 0 :(得分:3)

  

我可以在我的设备上进行Add-Hoc构建,看看它只占用了大约55 MB,

您的配置可能有一些不同的选项,例如

  • 托管链接器设置,例如不要链接链接SDK ;
  • 目标架构,例如armv7+arm64armv7+armv7s+arm64;
  

我如何弄清楚这里发生了什么?

比较您的构建日志,特别是为mtouch工具提供的选项。这通常可以快速找出差异。

  

我正在比较"估计的App Store大小"

始终比较IPA(文件)大小。已知用于猜测最终大小的算法通常(非常)错误。估算也来自Apple的工具,因此它们会随着您使用的Xcode版本而变化(这与您去年秋天使用的版本不同)。

旁注:当bitcode启用时,最终大小甚至更难猜测(目前仅适用于tvOS和watchOS版本。)

答案 1 :(得分:0)

您是否使用相同版本的Xamarin来构建代码。我愿意打赌这就是问题所在。自上次发布应用程序以来,Xamarin构建应用程序的方式发生了变化,并且正在炸毁您的应用程序构建大小。

如果您确实拥有相同的代码,那么您是否知道当时使用的Xamarin版本?老实说,因为唯一改变的是Xamarin编译器,这绝对是问题所在。

答案 2 :(得分:0)

我的猜测是,xamarin正在包装许多不需要的东西,可能是你不再使用的旧图像或类似物。我亲身经历过。

转到项目文件夹并删除obj文件夹中的所有内容

<myproject>/iOS/obj/

通常你会看到两个文件夹:iPhone和iPhoneSimulator。

删除那些并再次构建一切,很有可能解决它

答案 3 :(得分:0)

有四件事要做:

从客户端项目中删除 bin 和 obj 文件夹

更改架构以仅支持 64

配置链接器。 最好是尝试在链接器处于活动状态的情况下构建您的应用程序,但是您使用的 nuget 包越多,这种可能性就越小

最重要的是: 将您的构建配置设置为 RELEASE 而不是 DEBUG (如果您忘记了这一点,商店会接受您的应用,但大小很容易增加一倍甚至三倍)

这是最小设置的样子: enter image description here

然后不要忘记 XAMARIN 疯狂地向您的应用程序添加了库。我曾经读过,没有内容的最小应用程序至少有 7 MB。这只会随着每个包和每个新依赖项变得更大。