2

我正在使用 ArcGIS.framework for iOS 维护一个应用程序。我正在从版本 10.2~ 升级到 100+。我已经延长了这个时间,希望在某个时候应用程序大小问题能够得到解决。使用较新框架的应用程序大小从仅 26MB 增加到超过 360MB。这不会被客户接受。我一直在寻找一种很好且简单的方法来减少应用程序的大小,而无需使用应用程序细化,这需要启用位码,但由于某些其他原因我无法启用。

剥离 x86_64 和 i386 架构并不会减少太多的框架大小。

我们可以在编译时为 Xcode 提供标志、其他编译器或链接设置吗?

4

2 回答 2

7

您可以利用 App Thinning 而无需启用 bitcode,如果您的目标是 iOS 9 及更高版本,您只会看到一个精简的 .ipa 部署到任何设备(尽管通用 .ipa 会生成并上传到 iTunes Connect )。

实际上,这意味着如果您使用的是 Runtime 100.x,您的应用程序将使用应用程序细化。

以下是我们如何评估这一点,以了解 iOS 9+ 设备上的最终结果(运行时 100.2 需要):

  1. 在 Xcode 的菜单中,选择Product-> Archive(确保您选择了通用 iOS 设备或实际设备作为目标设备)。
  2. 完成后,管理器窗口应该会弹出,您应该能够在存档选项卡中看到最新的存档。
  3. 选择存档并点击Export右侧的按钮。
  4. 选择Development并点击下一步。
  5. 如果被问到,请选择一个团队。
  6. App Thinning菜单中,选择特定设备并点击下一步。
  7. 选择您的签名方法,然后点击下一步。
  8. 查看摘要,然后点击导出。

您最终会得到一个文件夹,其中包含精简后的 .ipa 和一些关于精简过程的报告,包括预期在设备上看到的使用情况。

例如,这是App Thinning Size Report.txt针对 iPhone 8(禁用位码)的运行时应用程序:

App Thinning Size Report for All Variants of MyRuntime100App

Variant: MyRuntime100App-iPhone 8.ipa
Supported devices: iPhone 8
App + On Demand Resources size: 31 MB compressed, 89.7 MB uncompressed
App size: 31 MB compressed, 89.7 MB uncompressed
On Demand Resources size: Zero KB compressed, Zero KB uncompressed

因此,上面的应用程序将是 31 MB 的无线下载,并在设备上占用 89.7 MB(该示例恰好包括 19.8 MB 移动地图包)。

希望有帮助。

如果可以的话,我还鼓励您将未来的问题发布到我们的iOS 运行时 SDK 论坛

于 2018-05-29T23:23:30.450 回答
0

手动添加 arcgis 框架而不是通过 cocoa pod 将有助于将其在设备上的最终可下载大小减少约 70 MB 以下是如何做到这一点

  1. 从https://developers.arcgis.com/downloads/apis-and-sdks下载 SDK
  2. 安装 .pkg 文件,默认安装到 ${HOME}/Library 文件夹。
  3. 在 xcode 上打开您的项目,然后通过 xcode 将 ${HOME}/Library/SDKs/ArcGIS/iOS/Frameworks/Static/ArcGIS.framework 拖到项目的 frameworks 文件夹中
  4. 将框架添加到项目的搜索路径https://developers.arcgis.com/ios/latest/swift/guide/install.htm#ESRI_SECTION3_2304BFA5F5A14A679B5A92B2DDEC859E

请注意,ipa 大小可能不会有所不同,但最终可下载的应用程序大小将减少约 70MB。

于 2018-09-25T10:21:58.097 回答