Cela dépend vraiment de chaque développeur individuel (ou propriétaire d'app, ou gestionnaire de programme).
En grande partie, le choix est fait en regardant le nombre de personnes qui utilisent encore l'ancien OS, quel qu'il soit, vs. quel que soit ce qui est rendu plus difficile parce qu'un ancien OS doit encore être testé, supporté, et parfois de multiples chemins de code doivent être faits.
Donc supporter iOS 10 par exemple rend légèrement plus difficile le support de l'iPhone X, XS, XR, XS Max parce qu'ils nécessitent tous une disposition à l'intérieur d'une zone de sécurité, et iOS 10 ne savait pas'ce qu'était une zone de sécurité.
Donc tout code qui doit dire par exemple "mettre ce bouton 10px au-dessus du bas de la zone de sécurité" doit être écrit comme "si c'est iOS 11 ou plus récent mettre ce bouton 10px au-dessus du bas de la zone de sécurité, sinon il suffit de le mettre 10px au-dessus du bas de l'écran"
Ce n'est pas difficile (il s'agit littéralement d'une seule déclaration if et de deux contraintes de mise en page très similaires), mais si vous oubliez de tester, votre application plantera sur iOS 10 (ou inférieur) et fonctionnera parfaitement sur iOS 11 (et supérieur). Elle ne plantera même pas à moins que vous arriviez à cette partie de l'app avec la partie "oublieuse".
La partie difficile est que ce n'est pas la seule chose que vous pourriez vouloir utiliser à partir d'iOS 11 (ou iOS 12), et vous devez vous souvenir pour chacun d'eux... pensez à la mort par 1000 coupures de papier. (aussi certaines choses sont plus difficiles que cela)
Donc, d'une part, vous avez des coûts de test supplémentaires, des coûts de programmation supplémentaires, un déploiement plus lent des nouvelles fonctionnalités...et d'autre part, vous avez un certain nombre d'utilisateurs. Peut-être sont-ils des clients (ils paient pour l'application, ou des fonctionnalités in app), ou peut-être votre application gagne-t-elle de l'argent grâce à la publicité. Dans les deux cas, vous pouvez probablement calculer combien d'argent vous gagnez avec chacun des utilisateurs de l'ancien système d'exploitation. Multipliez cela par le nombre de ces clients... et voyez ensuite si c'est au-dessus ou en dessous des coûts de programmation et de test supplémentaires, et une estimation de l'argent que vous perdez en étant plus lent à déployer de nouvelles fonctionnalités alors que vous le seriez si vous abandonniez tout ce travail supplémentaire.
La plupart des endroits ne sont pas aussi méthodiques, ils font ce même genre de choses à l'instinct.
Le résultat est similaire cependant, les apps qui font beaucoup d'argent par utilisateur et qui ont un plus grand nombre d'utilisateurs d'anciennes versions d'iOS auront tendance à conserver les anciennes versions d'iOS plus longtemps. Les apps qui font très peu d'argent par utilisateur et qui ont un plus petit nombre d'utilisateurs d'anciennes versions abandonneront plus rapidement les anciennes versions.