基于什么,iOS 应用切片有效?是否需要任何代码或其他东西?

Based on what, iOS App slicing works? Is there any code or other stuff required for it?

我一直在研究 iOS 9 个功能,并了解了 App Thinning 的概念。

我从 Apple 文档中看到了关于应用程序切片(应用程序瘦身的一部分)的内容:

Slicing is the process of creating and delivering variants of the app bundle for different target devices. A variant contains only the executable architecture and resources that are needed for the target device. You continue to develop and upload full versions of your app to iTunes Connect. The store will create and deliver different variants based on the devices your app supports. Image resources are sliced according to their resolution and device family.

所以,基于此我可以理解,如果我将图像定义为 @1x @2x @3x,那么如果用户有 iPhone 6 plus,那么只有 @将下载 3x 图像。但是其他资源呢?

我是否必须为 App slicing 编写任何代码?除了图像之外,还有哪些其他方法可以使 App 瘦身受益?

App Slicing不仅支持基于1x、2x、3x的图片,还支持Metal、audio、Sprite图集等。app结构如下图:

很明显,除了图像,OpenGL ES、Metal、音频和处理器特定代码都在一个应用程序包中。在应用切片中,根据应用下载到的设备选择合适的资源。

唯一能做的就是使用资产目录。这里的事情是在资产目录中添加文件

根据苹果, 切片是在您的正常开发和分发工作流程中执行的,通常按以下方式进行:

在Xcode中指定目标设备并在资产目录中提供多种分辨率的图像。 您必须使用资产目录才能对资源进行切片。

在模拟器或设备上构建并运行 应用程序。 Xcode 为所选设备类型构建应用程序变体,缩短调试构建时间并允许您在本地测试变体。

创建应用程序存档并在本地为目标设备导出变体。 在目标设备上测试您导出的所有变体,以尽早发现配置问题。

将应用程序上传到 iTunes Connect。 商店从存档中创建单独的应用程序变体。变体的数量取决于 Xcode 项目中指定的体系结构和资源。

在 iTunes Connect 中,将应用程序的预发布版本分发给指定的测试人员。 测试人员使用 TestFlight 在支持的设备上安装预发布版本。 TestFlight 会下载特定于用户设备的应用变体。

注意:要在将应用分发给用户之前测试商店构建的变体,请仅邀请内部测试人员(您团队的 iTunes Connect 用户)并使用 TestFlight 下载变体。如果您邀请外部测试人员(用户仅指定他们的电子邮件地址),则外部测试人员必须等待 Beta App Review 批准该应用程序,然后才能下载变体。 在 iTunes Connect 中,发布应用程序。 用户在支持的设备上安装该应用程序,商店应用程序会下载特定于用户设备的应用程序变体。

App Distribution Guide

上阅读更多内容