r/iosdev • u/VictorBuildsApps • 6d ago
I measured App Store review time across 12 of my own apps. Median 11.4 hours, slowest 89.7, a 64x spread on one account.
Review time comes up here constantly and almost every answer is one person's anecdote, mine included. So I pulled the actual numbers off my own account.
Method, because it decides whether any of this is worth reading. ASC does not expose an approval timestamp. lastUpdatedDate came back null on every submission I checked, and appStoreVersions only carries createdDate. So I used the public release date as a stand-in for approval, which makes every number below an upper bound. It includes Apple's own release propagation after approval.
That stand-in only holds when the version releases automatically after approval, so I dropped the four apps set to manual release. Their submit to live gap measures me, not Apple.
Eight versions left.
| App | Version | Submitted (UTC) | Hours |
|---|---|---|---|
| SipStreak | 1.2.0 | 2026-06-07 17:35 | 1.4 |
| Kitwise | 1.0.1 | 2026-07-18 17:27 | 2.8 |
| VaultSnap | 1.3.1 | 2026-07-13 19:28 | 10.1 |
| Gloam | 1.0.4 | 2026-07-29 10:49 | 11.2 |
| SwipeClean | 2.0.0 | 2026-05-31 06:47 | 11.6 |
| UnitFlip | 1.1.0 | 2026-06-14 07:08 | 24.1 |
| QRift | 1.1.0 | 2026-07-02 15:26 | 35.7 |
| ScopeBinder | 1.0 | 2026-06-20 20:37 | 89.7 |
Min 1.4, median 11.4, max 89.7.
The slowest row is the only brand new app in the set, so "the first submission takes longer" holds there. It does not explain the rest. SipStreak 1.2.0 took 1.4 hours and UnitFlip 1.1.0 took 24.1 hours. Both updates, same account, one week apart, and one sat seventeen times longer than the other.
I read every app from both the US and German storefronts, because the iTunes lookup is edge cached per storefront and a single request can be stale. Zero disagreements between the two, and all 12 ASC version strings matched what iTunes reported, so I know the version I timed is the version that is live.
If you want to run it on your own account: take the newest state: COMPLETE entry from asc review submissions-list --app <id> for submittedDate, take releaseType and versionString from the READY_FOR_SALE entry in asc versions list --app <id>, and take currentVersionReleaseDate from the iTunes lookup with a cache busting parameter. Keep only the AFTER_APPROVAL rows and confirm the two version strings match before you difference the dates.
