在Xamarin iOS中启用bitcode

时间:2017-04-10 07:52:58

标签: xamarin.ios mono xamarin-studio bitcode

我使用Xamarin Forms为iOS和Android开发了一个跨平台。我的应用程序使用了几个屏幕和一些tjird派对依赖项,如Facebook,谷歌地图和firebase。

一切正常,直到我在发布模式下编译它。假设我想支持armv7和arm64,这些是应用程序大小: *没有链接和优化:103mb。 *完全优化(链接所有+ LLVM):73mv。

通过优化和没有armv7我得到40mb - 这是我想要的结果大小。

为了解决这个问题,我认为我应该启用bitcode编译。然而,即使使用alpha工具,包括用于mac和mono v5的visual studio,我在启用此功能时也会获得“不支持平台:iOS”。另一方面,我坚持使用源代码并看到单声道允许它,此外它们允许手表和电视应用,这需要bitcode ...

有谁知道如何为iOS启用它?我会给我很大的帮助!

谢谢!

1 个答案:

答案 0 :(得分:0)

所以我找不到任何解决方案,不得不提交我的应用程序没有bitcode支持。 但是,对于今后可能解决此问题且希望因应用程序大小而使用bitcode的所有人 - 我想澄清一下:Bitcode,作为iOS 9 App Thining的一部分,仅与未来相关架构版本,即当你将它上传到App Store时,Apple会自动切片你的arm7 + arm64应用程序,而不需要你的任何操作(除了链接你的代码(“全部链接”)和支持这两种架构)。

您可以查看估计的应用程序大小,但是您不应该在Xamarin Studio中执行此操作,因为它显示的是通用应用程序版本,而不是特定于设备的精简应用程序版本。要检查设备X的大小,您应该:

  • 创建Ad-Hoc分发配置文件Apple Developer Site。
  • 在Xamarin Studio中创建存档。
  • 打开Xcode(如果之前已打开 - 关闭重新打开)。
  • 打开管理器。
  • 点击“导出”,然后点击“Ad Hoc”。
  • 您应该看到一个对话框,询问您是否需要通用ipa或设备特定的ipa。 通用IPA 是包含每个设备数据的通用IPA,因此您可以将其发送给所有人。这个ipa的大小将是你在Xamarin Studio中看到的大小(压缩前)。在执行Thining之后,特定于设备的ipa是特定设备的ipa。这是您的用户将下载的ipa。所以 - 选择你想要检查的设备。

现在,您将能够获得与此特定设备的大小相匹配的特定于设备的ipa。请注意,在您上传构建版本后,相同的信息将显示在iTunes Connect中。

请参阅: iTunes Connect Example

总结一下:目前你不能在Xamarin应用程序中使用bitcode(显然是iOS和Forms)。该选项确实存在于单声道中,但不包括在内(它在已发布的单声道运行时中明确禁用)。但是,这并不意味着在Xamarin Studio中显示的估计应用程序大小将是您的用户应用程序大小,因为它在iOS 9+ App Thining功能上有所不同,该功能不需要激活bitcode。

相关问题