我使用Xamarin Forms为iOS和Android开发了一个跨平台。我的应用程序使用了几个屏幕和一些tjird派对依赖项,如Facebook,谷歌地图和firebase。
一切正常,直到我在发布模式下编译它。假设我想支持armv7和arm64,这些是应用程序大小: *没有链接和优化:103mb。 *完全优化(链接所有+ LLVM):73mv。
通过优化和没有armv7我得到40mb - 这是我想要的结果大小。
为了解决这个问题,我认为我应该启用bitcode编译。然而,即使使用alpha工具,包括用于mac和mono v5的visual studio,我在启用此功能时也会获得“不支持平台:iOS”。另一方面,我坚持使用源代码并看到单声道允许它,此外它们允许手表和电视应用,这需要bitcode ...
有谁知道如何为iOS启用它?我会给我很大的帮助!
谢谢!
答案 0 :(得分:0)
所以我找不到任何解决方案,不得不提交我的应用程序没有bitcode支持。 但是,对于今后可能解决此问题且希望因应用程序大小而使用bitcode的所有人 - 我想澄清一下:Bitcode,作为iOS 9 App Thining的一部分,仅与未来相关架构版本,即当你将它上传到App Store时,Apple会自动切片你的arm7 + arm64应用程序,而不需要你的任何操作(除了链接你的代码(“全部链接”)和支持这两种架构)。
您可以查看估计的应用程序大小,但是您不应该在Xamarin Studio中执行此操作,因为它显示的是通用应用程序版本,而不是特定于设备的精简应用程序版本。要检查设备X的大小,您应该:
现在,您将能够获得与此特定设备的大小相匹配的特定于设备的ipa。请注意,在您上传构建版本后,相同的信息将显示在iTunes Connect中。
总结一下:目前你不能在Xamarin应用程序中使用bitcode(显然是iOS和Forms)。该选项确实存在于单声道中,但不包括在内(它在已发布的单声道运行时中明确禁用)。但是,这并不意味着在Xamarin Studio中显示的估计应用程序大小将是您的用户应用程序大小,因为它在iOS 9+ App Thining功能上有所不同,该功能不需要激活bitcode。