Ответ
Да, это можно сделать несколькими способами для управления минимальной поддерживаемой версией (Deployment Target) и условной компиляцией.
Основные подходы:
-
Разные Targets:
- Создайте отдельный таргет (File → New → Target).
- Для каждого таргета задайте свой
iOS Deployment Targetв настройках. - Полезно для создания полностью отдельных приложений (например, lite/paid версий) с разной базой кода.
-
Разные Build Configurations:
- Используйте существующие (Debug/Release) или создайте кастомные конфигурации.
- Для каждой конфигурации можно задать разные
Preprocessor MacrosилиActive Compilation Conditions. - Условная компиляция в коде:
#if STAGING_IOS14 // Код для сборки под iOS 14+ if #available(iOS 14, *) { ... } #elseif PROD_IOS15 // Код для сборки под iOS 15+ #endif
-
xcconfig файлы:
- Создайте
.xcconfigфайлы для каждой конфигурации. - Укажите в них разные значения для
IPHONEOS_DEPLOYMENT_TARGETи других флагов. - Это самый чистый и поддерживаемый способ управления настройками.
- Создайте
Важно: Для условного выполнения кода в runtime всегда используйте @available или #available для проверки версии ОС на устройстве.