iOS version distribution
iOS version distribution chart for deployment target decisions
Use this iOS usage chart to choose a deployment target by the users you still need to cover. Cumulative usage answers: if this iOS version is your floor, what percent of iPhone and iPad devices can run your Capacitor, React Native, Flutter, or native app.
As of June 5, 2026 , targeting iOS 15 covers about 96% of devices . A 99% goal lands near iOS 11 . The newest tracked release with data is iOS 26 at 67.8%.
- Last updated
- Updated June 5, 2026
- Source
- Source: iOS Ref
Compare with Android min SDK coverage on the Android version distribution chart .
Choose your minimum
What iOS version covers your users?
Pick a minimum iOS version, or set the user coverage you need. The chart answers: if this is your floor, what share of devices can install your app.
Finds the newest iOS version that still reaches at least this many users. Use tenths for targets like 99.5% or 99.9%.
Loading target…
How to use the chart
How to pick an iOS deployment target from version usage data
1. Set a coverage goal
Decide how much of the iOS install base you must keep. Teams often start at 95% and only climb to 99% or 99.9% when older iPhones still matter.
2. Use cumulative usage
A deployment target means that iOS version or newer. Cumulative usage matches that definition and is the number to trust for App Store reach estimates.
3. Take the newest safe floor
Prefer the newest iOS version that still hits your goal. That unlocks newer APIs and Xcode defaults while protecting the users behind your coverage target.
Device coverage
Last iOS version by device and cumulative usage
See which devices stop at each major iOS release, sorted by cumulative coverage from highest to lowest.
| Version | Released | Cumulative usage | Last iOS for |
|---|---|---|---|
| iOS 10 | 2016 | 99.3% | iPhone 5c , iPhone 5 |
| iOS 9 | 2015 | 99.3% | iPhone 4s |
| iOS 8 | 2014 | 99.3% | — |
| iOS 7 | 2013 | 99.3% | iPhone 4 |
| iOS 6 | 2012 | 99.3% | iPhone 3GS |
| iOS 5 | 2011 | 99.3% | — |
| iOS 4 | 2010 | 99.3% | iPhone 3G |
| iOS 11 | 2017 | 99.2% | — |
| iOS 12 | 2018 | 96.8% | iPhone 6 / 6 Plus , iPhone 5s |
| iOS 13 | 2019 | 96.4% | — |
| iOS 14 | 2020 | 96.3% | — |
| iOS 15 | 2021 | 96% | iPhone 7 / 7 Plus ,iPhone SE (gen 1) , iPhone 6s / 6s Plus |
| iOS 16 | 2022 | 94% | iPhone X , iPhone 8 / 8 Plus |
| iOS 17 | 2023 | 90.6% | — |
| iOS 18 | 2024 | 87.2% | iPhone XS / XS Max , iPhone XR |
| iOS 26 | 2025 | 67.8% | — |
| iOS 27 | 2026 | — | — |
| iOS 3 | 2009 | — | iPhone (gen 1) |
| iOS 2 | 2008 | — | — |
FAQ
iOS distribution FAQ
Answers for teams setting IPHONEOS_DEPLOYMENT_TARGET, planning Xcode upgrades, or reviewing Capacitor iOS support.
What is an iOS version distribution chart?
It shows cumulative iOS usage: the share of devices running at least a given major iOS version. That is the figure to use when you choose IPHONEOS_DEPLOYMENT_TARGET or a minimum supported iOS release.
How do I choose an iOS deployment target from this data?
Pick the coverage you need, then take the newest iOS version that still meets it. On this dataset, iOS 15 covers about 96%. Move toward 99% or 99.9% if you must keep older iPhones, or accept a lower floor to use newer APIs sooner.
Why is cumulative usage more useful than raw version share?
A deployment target means “this iOS version or newer.” Cumulative usage matches that rule. Raw share for one release understates how many devices can run the build.
How often is this iOS usage data updated?
Capgo refreshes the chart from iOS Ref daily. When the published numbers change, the JSON in the repo updates automatically. This page currently reflects data updated June 5, 2026.
Does this help Capacitor and Ionic iOS apps?
Yes. Capacitor apps ship as native iOS binaries, so the deployment target controls App Store eligibility and device reach. Check this chart before raising the floor for plugins, Xcode upgrades, or cloud builds.
Related developer resources
Keep going with Android coverage data, Apple signing tools, and Capgo release workflows.
How this data is kept current
A daily job fetches the latest numbers from the sources above. If the figures changed, the JSON files are committed automatically; if not, the repo stays untouched. The pages read these files at build time, so the charts stay in sync with the latest published data.