iOS ecosystem has always been like this since Apple supports phones for a long time.
For a free app, supporting a device for 7 years is already a long time. With iOS 18 around the corner, it makes every day more sense to cut you off.
There are plenty of reasons (of varying reasonableness) to avoid an update; people on an OS version this new shouldn't be getting this kind of harsh treatment.
If you have app features that rely on a new iOS feature, you could just put those behind a feature flag.
If your core API changes substantially over time meaning that out-of-date versions of your app quickly stop working without updates, it's better for the user if you use something like Swagger to auto-generate the API stubs; it makes it much easier to support your app in the long term, even for users on what would otherwise be unsupported platforms.
If you're dropping support because supporting an older OS creates irreparable security issues, well, I guess in this case they might actually be ok with that.
Since Apple controls phone updates and phone support is long, unlike Android, most companies only do latest - 1 except around September when they will do latest - 2. However, most don't cut people off, you are just unsupported land and they will if older iOS versions give them any trouble.
Also stop complaining, it’s a free app, get a new phone already.
Sorry, everyone has one HN soapbox, and you happen to have run into mine. Software developers need to stop being so hostile to users with devices they deem "old and icky". This includes OS vendors, too by the way, I'm not leaving them out. Supporting only N-1 is a user-hostile policy, and it's driven primarily out of developer laziness rather than business need. Remotely disabling any version is absolutely appalling, and I hope that practice doesn't catch on.
I got news for you, they invented something called websites and all they do is remotely disable what appears in your browser. Next thing you know, they place them in webviews and show "Your browser is not supported because it's running on a 8-year-old device."
I don't know how else to tell you that they did not break something that works, but simply stopped serving an old web view because supporting it DOES NOT come for free. Do you still ship IE6 views for the lone monthly viewer too?