iOS存档大小差异:命令行与Xamarin Studio

时间:2015-03-13 22:17:05

标签: xamarin.ios xamarin mdtool

如何让mdtool构建一个与Xamarin Studio的菜单选项(Build> Archive)一样小的iOS档案?

我从脚本中获得了一个项目构建存档,它比Xamarin Studio从菜单命令手动生成的内容要大得多。

步骤

对于Xamarin Studio,我只需将其设置为AppStore | iPhone并点击Build>归档菜单项。

对于命令行,这是RAKE脚本对mdtool进行的命令行调用:

  

... / mdtool -v archive \“ - 配置:AppStore | iPhone \” - p:SomeProject.iOS SomeSolution.sln

他们使用的“AppStore | iPhone”构建配置在iOS Build项目设置下设置为“仅链接SDK程序集”。

在命令行归档运行时,它肯定会在控制台输出的LinkMode: SdkOnly部分中打印MTouch Task

结果档案

在项目给我带来麻烦的情况下,生成的xcarchive文件为命令行为102MB,Xamarin Studio为66MB(差异:36MB),Xcode估计分别为69MB和35MB App Store大小。

在xcarchive文件中,它会变得更加混乱。有两个文件有差异,这两个文件不同~60MB(与上述差异不符):

  • dSYM文件:17kb vs. 29.2MB(奇怪)
  • [在.app文件中]应用程序可执行文件:30.1MB与65.7MB(我预期差异)

1 个答案:

答案 0 :(得分:2)

请注意,mdtool大部分已被弃用(仍用于经典,非统一的应用),因为Xamarin.iOS已转而使用msbuild作为其构建系统。

  

dSYM文件:17kb与29.2MB(奇怪)

前者错了。注意:最近修复了一个错误,您可能需要重建,而不仅仅是构建,才能获得正确的.dSYM。

这是符号目录大小。这不是作为应用程序的一部分发送给客户的东西。但是,归档非常重要,因为它将用于符号化任何针对您的应用程序的崩溃报告(来自客户)。

  

30.1MB vs. 65.7MB

如果第一种情况看起来像是(例如只有ARMv7)二进制文件,而后者是 fat <​​/ em>(例如ARMv7 + ARM64)应用程序。对于新的应用程序,Apple将接受AppStore上的胖应用程序(即32位和64位)。

  

Xcode估计

由于对文件进行了压缩,因此估算可能非常错误。它更加复杂,因为Apple的DRM将加密应用程序的可执行部分 - 加密数据压缩不好(或者它是一个非常糟糕的加密; - )。