That’s not how that works. Broadly speaking, you compile your app against a selected SDK version. Want to use newer features? You have to use a newer SDK. The SDKs themselves support selected ranges of OSes and don’t go back all the way to the beginning.
If you’re writing an app that targets the newest hardware features, say because you’re making a camera app that uses the latest updates, it’s not going to run on iOS 5. You can’t hold that against app authors, or even against Apple, really. There’s not a lot of return on investment for sinking thousands of dev hours into supporting ancient phones that almost no one uses, and which by definition are more likely to be used by people who won’t spend a dime on apps or services.
It's also worth noting that app stores tend to have a range of SDK versions that they will accept for new uploads. (For iOS apps on the Apple App Store, the minimum is currently the SDK for iOS 18[0], and in April 2026, that will change to a minimum of the SDK for iOS 26[1]).
In some cases (such as with Google Play), app stores will even unpublish apps that were built with old versions of the SDK.
In other words, if you want to update your app at all, you have to stick to the rules that they provide regarding SDK versions.
[0] https://developer.apple.com/news/upcoming-requirements/?id=0...
[1] https://developer.apple.com/app-store/submitting/
I'm not talking about the SDK version, I'm talking about the minimum supported OS version, which is selected by the developer in Xcode. While App Store requires a minimum SDK version, your app using that SDK version is free to target iOS versions all the way back to some limit that Xcode sets, which is currently 15.