On-Demand Resources with Initial Install Tags Are Frequently Unavailable at First Launch

Hello,

Because our app package size is relatively large, part of our resources needs to be delivered through Apple-hosted asset packs.

If we use the Background Assets framework to download these Apple-hosted packs, our app would only be able to support devices running iOS 26 or later. To maintain compatibility with a broader range of iOS versions, we chose to use iOS On-Demand Resources instead.

However, during actual use, we found that even when these packs are marked with the initial install tag, there is still a fairly high probability (around 40%) that they are not available on the first screen after the app is launched for the first time. When we try to access them through conditionallyBeginAccessingResourcesWithCompletionHandler, the resources are unavailable, which forces us to download them again.

During testing, we added event tracking and found that out of 22 users who downloaded the app, 9 had to re-download these resource packs on first launch.

Each of these packs marked with the initial install tag is about 300 MB in size. We have also made sure to follow the NSBundleResourceRequest limitation that no more than 2000 × 1000 × 1000 bytes of resources should be accessed at the same time.

We would like to understand why these packs, even though they are marked as initial install, still have such a high probability (around 40%) of being unavailable on the first screen at first launch.

On-Demand Resources with Initial Install Tags Are Frequently Unavailable at First Launch
 
 
Q