2017-04-10 47 views
1

我使用Xamarin Forms为iOS和Android开发了一个跨平台。我的应用程序使用多个屏幕和一些第三方的依赖关系,如Facebook,谷歌地图和Firebase。在Xamarin iOS中启用位代码

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

随着优化和没有armv7我越来越40mb - 这是我想要的结果大小。

为了解决这个问题,我认为我应该启用位码编译。但是,即使使用alpha工具,包括visual studio for mac和mono v5,我也会在启用此功能时收到“平台不支持:iOS”。另一方面,我盯着源代码,看到单声道允许它,除了它们允许手表和电视应用程序,这需要位代码...

有谁知道如何启用它的iOS?我会为我提供巨大的帮助!

谢谢!

回答

0

所以我找不到任何解决方案,必须提交我的应用程序w/o位码支持。 然而,对于将来可能解决此问题并希望因应用程序大小而使用位码的所有人 - 我想澄清一下:作为iOS 9应用程序Thing的一部分,Bitcode仅与未来体系结构发布有关,即除非链接代码(“链接全部”)并支持两种体系结构,否则Apple会自动将您的arm7 + arm64应用程序切片,然后将其上传到App Store,而无需执行任何操作。

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

  • 创建特设分布轮廓苹果开发者网站。
  • 在Xamarin Studio创建一个档案。
  • 打开Xcode(如果它以前打开 - 关闭重新打开)。
  • 打开主办单位。
  • 点击导出,然后点击“Ad Hoc”。
  • 您应该看到一个对话框,询问您是否需要通用ipa或特定于设备的ipa。 通用IPA是一个通用的IPA,包含每设备的的数据,因此您可以将其发送给每个人。这个ipa的大小将是您在Xamarin Studio中看到的大小(在压缩之前)。执行Thining之后,特定于设备的ipa是特定设备的ipa。这是您的用户将下载的IPA。所以 - 选择你想要检查的设备。

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

参见: iTunes Connect Example

因此,要总结一下:目前不能在Xamarin应用程序使用位码(iOS和形式,很明显)。该选项确实存在于单声道,但未包含(在出货的单声道运行时中明确禁用了该选项)。但是,这并不意味着在Xamarin Studio中显示的估计应用程序大小将会是您的用户应用程序大小,因为它在iOS 9+ App Thining功能上有所不同,因为它不需要启用位代码。