Обычно (хотя и не всегда) новые операционные системы такие же, как и предыдущие, но с новыми функциями. Старые версии приложений часто работают с новейшей ОС, но не используют новые функции. Единственная проблема, с которой обычно сталкиваются пользователи, это проблемы сбоев, но все зависит от того, какие API вы используете в своем приложении.
Кроме того, обновления никогда не «навязываются» пользователю - они всегда являются необязательными. В случае, когда приложение работает только на версии iOS, которая выше, чем у пользователя, обновление вообще не будет предлагаться пользователю. Они по-прежнему смогут использовать старую версию, установленную на их устройстве. Приложения не имеют срока действия.
Если вы хотите сохранить совместимость для максимально возможного количества версий iOS, вы можете установить целевой уровень развертывания iOS на минимальную ОС, для которой ваше приложение должно быть совместимым. Номер версии SDK не должен иметь значения, но для поддержки новейших функций iOS вам потребуется последняя версия iOS SDK.
Вам все равно придется проверить совместимость своих API с версией, на которую вы нацелены, в качестве минимальной ОС. Смотрите здесь и ищите "API Diffs". В каждом документе перечислены изменения API для этой версии iOS. Это перечислит новые и удаленные API с той версии. Например, UIPrintPaper
, который указан в документе API diffs от iOS 4.1 до 4.2, является новым API для iOS 4.2. Таким образом, при запуске на iOS 4.1 или более ранней версии приложение будет аварийно завершать работу при вызове этого API. Использование #if __IPHONE_OS_VERSION_MAX_ALLOWED <= __IPHONE_4_1
вокруг вашего UIPrintPaper
снайпера решит эту проблему.