™Release updates during a phased rollout in App Store Connect

Viewed 769

How the phased rollout of App Store Connect works in detail? The official Apple documentation is very poor and doesn't mention a lot of things that matter. Let me formulate some questions.

The situation

  1. The current version of my app is 1.0 and is released to everyone in the App Store. The version I want to release is 2.0 (Build number: 100) and is a major update with breaking changes
  2. I start a phased release for version 2.0
  3. After 2 days the update has reached 2% of my users (randomly selected) with automatic updates turned on. I decide to pause the release because I found a critical bug
  4. I create a version 2.0.1 (Build number: 101) with the bugfix to 2.0
  5. I create a version 1.0.1 (Build number: 102) with intent to rollback to 1.0 in case the major update it's not going well

Questions

  1. How does the release of an update work during a phased release? Will version 2.0.1 be released only to the same 2% of the users that already received version 2.0? Or it will be delivered to a completely new 2% of my users?

  2. In case it's a new 2% of users:

    2.1 what happens to the 2% of users that are on 2.0 and to the remaining 98% that is still on 1.0?

    2.2. is it true that is completely new 2%? Because if they are randomly selected, potentially there could be an intersection between the old 2% and the new 2%.

  3. In case I don't want to proceed with the release of the bugfix 2.0.1 (e.g. I realize that the major update 2.x is not behaving well), what is the strategy to rollback to version 1.x? How can I push 1.0.1 to everyone? Should I cancel the phased released of 2.0 and just submit 1.0.1?

Thanks in advance for the help! I have read tons of Stackoverflow posts and I have tried to look everywhere on the web, but I didn't find any clear answer about the topic above.

1 Answers
  1. It will be a different random selection of users

2.1 Nothing special. They stay on their current version until they update (either automatically or manually).

2.2 As it is a random selection, there could be some overlap

  1. You can't. Version numbers always increase. You could take your version 1.0 code base and release it as version 2.0.2 or something, but you can't release a new "1.0.x"

To clarify this answer, it is perhaps a bit misleading to use the word "selection". This implies that when you activate a staged rollout, the App Store somehow chooses the devices that will get the update each day, in advance and the update is "pushed" to those devices.

This is not what happens.

iOS devices periodically check with the App Store to see if updates are available for their installed apps and pull them if auto updates are enabled.

For a given app:

  • If a non-staged update is available then the answer is "yes"

  • If a staged update is available then the answer is randomly "yes" or "no" with an increasing probability of "yes" during the rollout period, with that probability reaching 100% by the end.

  • Either way, if the answer is "yes", it is the most recent version of the app that is installed.

Related