Какой минимальный таргет iOS используется в проекте
Что проверяют
Знаете ли вы свой проект и понимаете ли, от чего зависит эта цифра. Ответ «iOS 15» без причины ничего не значит, поэтому следом спросят, почему не выше и что приходится делать ради старых версий.
Как отвечать
Назовите версию из своего проекта и объясните, как к ней пришли:
- где задаётся:
IPHONEOS_DEPLOYMENT_TARGETв настройках таргета иplatformsвPackage.swift. Это не версия SDK: собирать можно последним Xcode, а запускаться на старых системах; - на что опираются: на аналитику своей аудитории (App Store Connect, собственные метрики), а не на общую статистику. Типичная практика: текущая версия и одна-две предыдущие, iOS обновляют быстро;
- что даёт повышение:
NavigationStackи Swift Charts с iOS 16, макрос@Observableи SwiftData с iOS 17. Без них приходится держать два пути кода; - чего стоит низкий таргет: проверки
if #available(iOS 17, *), дублирующие реализации, прогоны на старых симуляторах, конфликты с зависимостями, которые сами поднимают минимум.
Сильный ответ звучит примерно так: «Минимум iOS 16. Доля пользователей на 15 опустилась ниже двух процентов, мы подняли таргет, убрали обёртки над навигацией и перешли на NavigationStack». Цифры и версии подставьте свои.
Если таргет выбирали до вас, так и скажите, но объясните, почему он такой, и предложите, когда его стоит поднять.
Где спотыкаются
Путают Deployment Target с версией Xcode или Base SDK. Это разные настройки, и путаница сразу выдаёт, что в настройки проекта вы не заглядывали.
Повторяют устаревший совет «ставьте iOS 13, там есть SwiftUI». Первая версия SwiftUI сильно урезана, навигацию и многое другое на практике делают на более поздних системах.
Не знают, какие устройства отсекает таргет. Например, iOS 17 уже не ставится на iPhone 8 и iPhone X, и для части аудитории это аргумент против повышения.