Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

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 is gonna be useful for certain apps but what is the backward compatibility mechanism of this new feature. Let's be honest, its very rare that an app only supports the latest iOS version. It always has been at most 2 versions back.

My theory is that maybe old versions would simply ignore the whole ODR and let the users download the full pack of the app from the store.

Are there anybody who has more information that could clarify this?

like image 786
Teffi Avatar asked Jul 30 '15 06:07

Teffi


2 Answers

See this note in Apple's docs on App Thinning:

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.

The doc isn't 100% clear on how this affects ODR, but it hints pretty strongly that:

  • When an iOS 9 client downloads your app from the App Store, iOS will download only the base app (sliced appropriately for the device), plus resources you're included in the Initial Install Tags in Xcode.
  • When an iOS 8 or earlier client gets your app, iOS will...

    enter image description here

    ...as well as all the CPU-specific binaries, all the device-size-specific nibs, etc.

like image 52
rickster Avatar answered Oct 18 '22 09:10

rickster


Unfortunately it seems that ODR is not supported with a pre-iOS 9 deployment target: when uploading to the App Store you will receive the following error:

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.

That being said, it seems possible that Apple will allow this in the future by implementing this on the App Store, so please file Radars to request this.

like image 20
Frederik Avatar answered Oct 18 '22 11:10

Frederik