The oldest iOS version your app runs on is its deployment target. A lower target reaches more people but costs more testing and limits the newer features you can use. This page is a worksheet to pick yours from your own data. It contains no market-share figures, because they change and you should use your own.
What the choice affects
- Reach. Users on older iOS cannot install an app with a higher target.
- Features. Newer system features may not exist on older versions, so you need fallbacks or you must drop the feature there.
- Testing effort. Every supported version is a version you should test, at least at its edges.
- Maintenance. Old versions bring workarounds you carry forward.
Worksheet
1. Look at your own users
If the app is live, check your own analytics or crash reports for the iOS versions of your users. App Store Connect may offer a breakdown too; look at what it currently shows for your app. If the app is new, use the answer from your first testers and your target audience.
2. Name the features you need
List the newer system features the app depends on. Check the current Apple documentation of each for the version it requires. If a core feature needs version N, your target should not be below N unless you accept a fallback.
3. Decide your rule
Pick a rule and write it down, for example:
- "Support the current major version and the previous one."
- "Support the lowest version that our key feature needs."
- "Drop a version when fewer than X percent of our own users remain on it." (Choose X yourself.)
Reviewing it once a year keeps it honest.
4. Test the boundaries
You do not test every version equally. Test the edges:
- The lowest supported version. Most missing-feature crashes appear here.
- The newest version, including beta releases when they are available. New releases change system behavior.
- One version in between if your app does anything unusual.
Use a real device for the oldest version if you can, and the simulator for the rest. See which iPhones to test on.
5. Check what changes between versions
Ask testers on different versions to run the same short script, covering at least:
- Layout and appearance: dark mode and Dynamic Type.
- Permission prompts and notifications.
- Anything that uses a newer API.
Raising the target later
When you raise the minimum, tell users in the release notes and on your support page which iOS version is now required. Users on an older version cannot install the new release, so decide beforehand how you will answer their support requests.
Quick decision table
| Situation | Lean toward |
|---|---|
| New app, no data | Recent versions only; less testing |
| Key feature needs a new API | Raise the target to that version |
| Many own users on an old version | Keep it, test the edge |
| Few testers on an old version | Consider dropping it |
Hub: iOS app testing.
Get started on AppReviewX and ask testers for their iOS version in every report.