iOS ArcGIS.framework 太大,因此 .ipa 大小

iOS ArcGIS.framework too large, hence large .ipa size

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

剥离 x86_64 和 i386 架构并没有减少框架的大小。

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

您无需启用位码即可利用 App Thinning,如果您的目标是 iOS 9 及更高版本,您只会看到部署到任何设备的 Thinned .ipa(尽管 Universal .ipa)。将生成 ipa 并上传到 iTunes Connect)。

实际上,这意味着如果您使用运行时 100.x,您的应用程序将使用应用程序瘦化。

以下是我们如何对此进行评估,以了解最终会出现在 iOS 9+ 设备上(Runtime 100.2 需要):

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

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

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

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 的移动地图包)。

希望对您有所帮助。

如果可以的话,我也鼓励您 post 以后向我们的 iOS Runtime SDK forum 提问。

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

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

请注意,ipa 大小可能没有差异,但最终可下载的应用程序大小将减少约 70MB。