4

Xamarin.iOS 在为 AdHoc/AppStore 构建时会这样做吗?我绑定到许多具有支持模拟器的架构的静态/胖库。是否为 AdHoc/AppStore 剥离了未使用的架构?

4

1 回答 1

4

简短的回答:是的

长答案:

虽然 Xamarin 的链接器是托管链接器(并且仅适用于托管代码),但从最终的可执行二进制文件中删除了额外的体系结构。这对于 i386 是正确的,但对于仅 ARMv7 的可执行文件删除 ARMv6(从库中)也是如此。

此外,由于您包含很多绑定,因此您可能想要:

  • 在绑定 .dll 上启用托管链接器。这将从 .dll 中删除未使用的代码,并且还将优化绑定。[LinkerSafe]您可以通过在绑定项目中添加属性轻松地做到这一点;和

  • 启用新的静态注册器并包含SmartLink=true在您的[LinkWith]属性中。这使本链接器能够更好地删除本机代码(如果从绑定 .dll 中删除未使用的代码,这将变得更加容易)。

这两个选项都可以减少您的最终应用程序大小。您可以观看我在Evolve 2013上关于高级 iOS 构建机制的演讲,以了解有关它们的更多详细信息。

于 2013-11-13T18:20:08.510 回答