如何让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(与上述差异不符):
答案 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将加密应用程序的可执行部分 - 加密数据压缩不好(或者它是一个非常糟糕的加密; - )。