iOS9 按需资源 (ODR) 的向后兼容性

Backward Compatibility of iOS9 On Demand Resources (ODR)

On-Demand Resources (iOS)

On-demand resources are resources—such as images and sounds—that you can tag with keywords and request in groups, by tag. The App Store hosts the resources on Apple servers and manages the downloads for you. On-demand resources enable faster downloads and smaller app sizes, improving the first-time launch experience. For example, a game app may divide resources into game levels and request the next level of resources only when the app anticipates that the user will move to that level. Similarly, the app can request In-App Purchase resources only when the user buys the corresponding in-app purchase.

ODR 对某些应用程序很有用,但此新功能的向后兼容性机制是什么。老实说,很少有应用程序只支持最新的 iOS 版本。它总是最多返回 2 个版本。

我的理论是,旧版本可能会简单地忽略整个 ODR,让用户从商店下载完整的应用程序包。

有没有人有更多信息可以澄清这一点?

请参阅 App Thinning 上 Apple 文档中的这条注释:

Note: For iOS apps, sliced apps are supported on the latest iTunes and on devices running iOS 9.0 and later; otherwise, the App Store delivers universal apps to customers.

该文档并未 100% 清楚这对 ODR 的影响,但它非常强烈地暗示:

  • 当 iOS 9 客户端从 App Store 下载您的应用程序时,iOS 将仅下载基本应用程序(针对设备进行适当切片)以及您包含在初始应用程序中的资源在 Xcode.
  • 中安装标签
  • 当 iOS 8 或更早版本的客户获取您的应用程序时,iOS 将...

    ...以及所有 CPU 特定的二进制文件、所有设备大小特定的 nib 等

不幸的是,iOS9 之前的部署目标似乎不支持 ODR:上传到 App Store 时,您将收到以下错误:

ERROR ITMS-90510: "Invalid Info.plist Value. The value provided for the key MinimumOSVersion '8.0' is less than the required value '9.0' for app that contain on-demand resources.

话虽如此,Apple 似乎有可能在未来通过在 App Store 上实现这一点来允许这一点,因此请提交 Radars 以请求这一点。