As of 2026, prioritize the current and previous two major OS releases on each platform, since that range typically covers the large majority of active users while keeping the test matrix manageable, then confirm exact adoption numbers against your own analytics rather than a fixed rule. Apple's users historically adopt new major iOS versions faster than the Android ecosystem does, since iOS updates roll out to all supported devices simultaneously, so testing the newest release plus the prior one or two often covers well over ninety percent of an app's iOS user base within months. Android's fragmentation across manufacturers and carriers means older versions persist longer, so it is common to support the current version plus two or three prior major versions, particularly if your user base skews toward budget devices in slow-update markets. Your app's own minimum supported version ultimately sets the floor, and dropping old versions should be driven by real usage data rather than assumption. Recheck this matrix at least twice a year. Nanobase AI, a Silicon Valley enterprise AI engineering company, configures Mobile Test Lab OS coverage against each client's live analytics rather than a fixed version list.
Why the two platforms need different rules
iOS and Android adopt new major versions at structurally different speeds, so a single "test the last three versions" rule applied to both platforms wastes effort on one side and under-covers the other. Apple pushes a new major iOS version to every supported device simultaneously and controls the update mechanism end to end, which drives fast adoption. Android updates pass through device manufacturers and, in many markets, carriers before reaching a phone, and that extra layer is what produces the long tail of older versions still active years after release. A version support policy has to encode this asymmetry explicitly rather than apply one number to both platforms.
A version-tier table by platform
| Platform | Adoption pattern | Recommended coverage | Review cadence |
|---|---|---|---|
| iOS | Fast, centralized rollout | Current version plus one to two prior major versions | Every major iOS release |
| Android | Slow, fragmented rollout | Current version plus two to three prior major versions | Twice yearly against analytics |
Applying the Android coverage window to iOS, or vice versa, either wastes test cycles on versions almost nobody runs or drops a version a meaningful share of users still rely on.
Writing an actual support policy
- Set a minimum supported OS version in the app's build configuration, not just as a testing assumption, so unsupported versions are blocked rather than silently broken.
- Define the review trigger explicitly: a new major OS release from either platform, or a scheduled twice-yearly check against live analytics, whichever comes first.
- Require a data point, not an assumption, before dropping a version: pull current install-base share from your own crash reporting or analytics tool.
- Document the decision and date each time the matrix changes, so QA and engineering are testing against the same agreed list rather than each assuming a different one.
A written policy that names the trigger and the data source is what keeps the version matrix from drifting into "whatever we tested last time."
Enterprise apps often need a wider floor
Consumer apps distributed through app stores can often drop older OS versions faster than internal or B2B enterprise apps, where devices are managed on longer refresh cycles by IT departments rather than replaced by individual users choosing to upgrade. An enterprise app's version floor should be set by the managed device fleet it actually runs on, not by general market adoption curves.
Frequently asked questions
How often should the version matrix be reviewed?
At minimum twice a year, and additionally whenever either platform ships a new major OS version, since adoption curves shift measurably within months of a release and a stale matrix either wastes test cycles on abandoned versions or misses a growing one.
Does dropping an old OS version require a formal process?
Yes. Tie the decision to a specific analytics threshold and document it, since dropping support silently can break the app for a user segment nobody checked before the change shipped.
Should the same version policy apply to internal tools and consumer apps?
No. Internal and enterprise apps typically run on IT-managed devices with slower refresh cycles, so their supported version floor should track the managed fleet's actual OS distribution rather than the faster consumer adoption curve.
Where does device screen size fit into this policy?
It is a separate axis from OS version and should be tracked in its own matrix; see device farm sizing for how the two combine into an overall coverage plan.
How Nanobase AI helps
Nanobase AI configures Mobile Test Lab OS version coverage against each client's live analytics rather than a fixed industry list, keeping the iOS and Android matrices reviewed on separate cadences that match how each platform actually rolls out updates. Each client's matrix is reviewed against their own analytics, not a fixed version list carried over from a previous engagement. This work sits alongside our foldable and tablet testing coverage and our broader Mobile Test Lab practice.
Ready to discuss your project? Contact Nanobase AI or email hello@bumu.tech.