位码,切片,ODR,应用程序细化


位码:

位码是已编译程序的中间表示。 您上载到iTunes Connect的包含位码的应用程序将在App Store上进行编译和链接。 包括位码在内,Apple将来可以重新优化您的应用二进制文件,而无需向商店提交新版本的应用。 如果出现具有新架构的新设备,它使Apple可以为新架构重新编译您的应用程序,而无需提交包含该架构的新版本。 位代码使Apple可以为特定体系结构生成可执行文件。

位代码是指发送到iTunes Connect的代码类型:“ LLVM位代码”。 这使Apple可以使用某些计算来进一步重新优化应用程序(例如:可能缩小可执行文件的大小)。 如果Apple需要更改您的可执行文件,那么他们可以在不上传新版本的情况下执行此操作。

切片:

Apple根据设备的分辨率和体系结构为用户的设备优化应用程序的过程。 切片不需要位码。 (例如:仅在5秒内包含@ 2x图像)

用户仅下载某些代码体系结构和某些资源版本的操作就是切片。
苹果表示:“切片是为不同目标设备创建和交付应用程序包变体的过程。 变体仅包含目标设备所需的可执行体系结构和资源。因此,切片仅具有特定设备的可执行代码和资源。

切片将您的应用程序资源分为特定设备的组。

按需资源(ODR)

它的工作原理是,应用程序可能在任何给定时间都不需要其整个资源库,因此可以根据需要下载或删除其中的一部分。 通过将代码段标记为ODR,开发人员将能够指定在什么时候需要什么代码。 这些部分在需要时会自动从App Store下载,而在不再需要时会删除。

随选资源是诸如图像和声音之类的资源,您可以使用关键字对其进行标记,并可以按标签分组请求。 App Store在Apple服务器上托管资源,并为您管理下载。 App Store还对按需资源进行了切片,从而进一步优化了该应用的变体。

按需资源可提供更好的用户体验:

  • 应用程序尺寸较小,因此应用程序下载速度更快,从而改善了首次启动体验。
  • 在用户浏览您的应用程序时,根据需要在后台下载按需资源。
  • 当不再需要按需资源并且磁盘空间不足时,操作系统将清除它们。

应用细化:

App Thinning是切片,位码和按需资源的组合

删除Swift符号:

默认情况下,启用了新的Strip Swift Symbols(STRIP_SWIFT_SYMBOLS)构建设置。 它调整符号剥离的级别,以便在剥离构建的链接产品时,将删除所有Swift符号。 这大大减少了Swift框架的大小。 如果缺少Swift符号会导致问题(例如使用dladdr()时),则可以禁用此设置。 要查看已剥离文件中的导出符号,请使用xcrun dyldinfo -export而不是nm。 (31306055)

空中安装清单:

当您在应用中使用按需资源时,需要提供分布式清单信息,否则,您无需选中“包括清单以进行无线安装”。

https://blog.hedgehoglab.com/about-app-thinning


快乐编码!

Interesting Posts