For several years now Apple has offered Phased Rollouts for app updates in the App Store. This lets you slow down the adoption of a new update to your users by limiting the number of users who are offered it as an automatic update each day.
This is useful for when you are releasing a ‘high risk’ update or one that will make use of a new resource and you’ll like to be able to change fix or adapt to the update in a more gradual way.
I hadn’t had a specific use for this until a recent set of updates caused me to try them out. For my app, Pedometer++, I needed to roll out a change to the step counting system that was really hard to be sure I’d got 100% correct. No amount of testing would eliminate this uncertainty so it seemed a good candidate for a phased rollout.
According the the App Store Connect documentation here are the “offered percentages” for each day of the roll-out. These are the proportion of your userbase that will be offered an automatic update. Users can always do a manual update within the App Store. Additionally, you will have new users downloading your app and they will always get the latest version.
Day | Phase % |
---|---|
Day 1 | 1% |
Day 1 | 2% |
Day 1 | 5% |
Day 1 | 10% |
Day 1 | 20% |
Day 1 | 50% |
Day 1 | 100% |
Here is what I observed in practice.
The following release after the phased one was a typical ‘immediate rollout’ which I include in the graph for comparison.
I was very pleased to see the system work so well. The rollout was slow and measured. It let me find a few things I needed to fix before the update got out to all my users.
Also remarkable to me is how quickly the ‘immediate rollout’ really is. With around 80% adoption in just a couple of days.