App Store phased release: 7 day schedule, pause, resume, release all
· 7 min read
An App Store update goes out to everyone at once unless you tell Apple otherwise. Phased release is the "otherwise": Apple sends the new version to a small share of users with automatic updates on, then a larger share each day for seven days. If something looks wrong, you pause. If everything looks fine, you can skip ahead and release to everyone. This guide covers the schedule, what pausing and resuming really do, the limits Apple sets, and how to decide when to stop or speed up.
The Apple facts below come from Apple's App Store Connect Help page Release a version update in phases, as read on November 4, 2026. AppForShare, the tool we make, can run these controls from its dashboard; that part is at the end. For the Android side of the same job, see the Google Play staged rollout guide.
The 7 day schedule
Apple's page lists a fixed schedule. You cannot change the percentages or the length:
| Day of phased release | Share of users with automatic updates |
|---|---|
| Day 1 | 1% |
| Day 2 | 2% |
| Day 3 | 5% |
| Day 4 | 10% |
| Day 5 | 20% |
| Day 6 | 50% |
| Day 7 | 100% |
Apple describes the option as releasing "your app's update gradually over 7 days", where "a random sample of users with automatic updates on eligible devices will receive the update, without any notification of their participation in the phased release." You do not pick who is in the sample, and users are not told.
What phased release does not hold back
This is the part people miss. Phased release only controls automatic updates. Apple's page says it plainly: "apps and app updates in phased release can be manually downloaded from the App Store by anyone at any time."
So on day 1 the new version is not hidden. Anyone who opens your App Store page and taps Update gets it, and anyone who installs the app fresh gets the version on the store. In practice the first days reach your most active users, the ones who check for updates by hand, plus a small random share of everyone else. Treat the 1% as a floor, not a ceiling, when you read your numbers.
It also means phased release is not a way to keep a version secret or to run an experiment on a fixed group. For a controlled group, use TestFlight or a test build before release.
Turning it on
Phased release is for version updates. According to Apple's page you can choose it while the version is in one of these states: Prepare for Submission, Waiting for Review, In Review, Waiting for Export Compliance, Pending Developer Release, Developer Rejected, Rejected or Metadata Rejected. In App Store Connect, open the version, find the Phased Release for Automatic Updates section, select Release update over a 7-day period using phased release and save.
When Apple approves the version, its status becomes Ready for Distribution with "Phased Release" next to it.
Apple also exposes phased releases in the App Store Connect API, which is how tools other than App Store Connect itself drive it.
Pausing
To pause, open the Ready for Distribution version, go to the same section, select Pause Phased Release and save. Apple's limits, in its own words: "you may pause the release for up to 30 days, with no limit on the number of pauses", and "You can pause your release for a total of 30 days. For example, if you pause the release for 10 days and then choose to resume it, you will have 20 days remaining to pause the release again."
What pausing does and does not do:
- It stops new automatic updates. No more users get the version through automatic updates while it is paused.
- It does not take the version back. Users who already have it keep it. There is no way to move an iPhone back to the previous version from the App Store.
- It does not hide the version. Manual updates and new downloads still get it, as above.
- The 30 days are a total, not per pause. Several short pauses use the same budget.
If the problem is in the app, pausing buys time. The real fix is a new version with the fix, sent for review as soon as possible. If the problem is on your server and you fix it there, resume.
Resuming
To resume, select Use Phased Release in the same section and save. Apple says the release "will pick up on the day it was left off when it was paused." So a release paused on day 3 (5%) carries on from day 3, not from day 1 and not from day 4.
Releasing to everyone
You do not have to wait for day 7. Apple's page says you can "release it to all users at any time once it has the Ready for Distribution status", and then "all users whose devices have automatic updates turned on" get the latest version their device supports. Teams often do this after two or three quiet days, or when the update fixes a bug that is worse than the risk of shipping faster.
One more rule from Apple: if the app is removed from sale, including when the Apple Developer Program membership lapses, phased release stops for that version, and when the app comes back it is available to all users at once, whatever percentage it had reached.
What to watch before you let it run
- Crash rate of the new version in Xcode Organizer or your crash tool, compared with the previous version on the same day of its rollout.
- Reviews mentioning the update. A few one star reviews naming the same screen are often the first sign of a bug that does not crash.
- Your own server signals. Sign in success, payments, error rates per app version. Apple cannot see a broken API call.
- Support email. Early adopters write first.
Because manual updaters arrive on day 1, you usually get enough data on days 1 and 2 to decide whether to pause. If nothing has moved by day 3 or 4, releasing to everyone is a reasonable call.
App Store phased release vs Google Play staged rollout
| App Store phased release | Google Play staged rollout | |
|---|---|---|
| Who sets the percentage | Apple, fixed 7 day schedule | You, any percentage, raised by hand or by API |
| Who gets it | Random users with automatic updates on | Random users chosen by Google |
| Manual updates and new installs | Anyone can get the new version | Only users in the rollout get it |
| Stop | Pause, up to 30 days in total | Halt, then resume or ship a new release |
| Go back to an older version | Not possible; ship a fix | Not possible for those who updated; ship a fix |
| Finish early | Release to all users | Complete the rollout (100%) |
The Play details are in the Google Play staged rollout guide.
Other tools
Several release tools can set phased release for you. One example: Bitrise Release Management lists a phased release setting in its release presets, per its release presets docs as read on November 4, 2026. If your team already lives in Bitrise, that is a fine place to keep the setting. Moving releases elsewhere while keeping Bitrise as your CI is covered in moving off Bitrise Release Management.
Phased release in AppForShare
On Pro and Team, AppForShare can send an App Store version for review through your workspace's own App Store Connect connection, from the "App Store review" card on the listing page. When you send it, you choose how it is released: after approval, by hand, or on a date, and whether to use the 7 day phased release. A checklist runs before sending (build, export compliance, review contact, descriptions, screenshots and more), and Apple's own refusal reasons are shown if it says no. See App Store submission.
Once the version is out, an Admin of the workspace can pause the phased release, resume it, or release to everyone from the same card. Every step is kept in the card's history with the person who did it. Sending needs an Admin and a confirmation tick naming the app, version and build, and it uses your App Store Connect key in the name of your Apple developer account.
AppForShare never sends, cancels, pauses or releases on its own. It does not watch crash rates or decide anything for you: a person presses the button each time. That is deliberate. Phased release only has value if someone looks at the numbers between days.
Before the release, testing still happens on real phones. If your builds come from Bitrise, sharing a Bitrise build with testers shows the one Script step that sends each build to them.


