Как узнать, какой API нельзя использовать в каком iOS SDK?
Проект Xcode имеет следующие настройки:
Deployment target: iOS 9.0
Base SDK: iOS 9.3 (latest)
Как я понял, приложение можно установить на iOS 9.0 и, возможно, попытаться получить доступ к API, который доступен только с iOS 9.3. В этом случае приложение зависнет.
Итак, как мне легко узнать, какие API, к которым обращается приложение, недоступны ни в одной версии между целью развертывания и версией, предшествующей базовому SDK? Поскольку цель развертывания известна компилятору, не должен ли он выдавать предупреждение, когда в коде используется API, который, очевидно, приведет к сбою приложения при запуске на версии iOS ниже его введения?
2 ответа
Вы проверяете это в заголовочных файлах.
API не меняется между iOS 9 и iOS 9.3, поэтому вы в безопасности. С другой стороны, люди, использующие iOS 8, не могут запустить ваше приложение, что означает меньше пользователей, меньше продаж, меньше денег.
Если вы развернули на 8.0, вы могли легко проверить во время компиляции, используете ли вы некоторые новые API, временно изменив базовый SDK на 8.0. В этом случае вы должны быть уверены, что не вызовете какие-либо методы iOS 9 на iOS 8.
Вы должны проверить класс ('NewFeature
', будучи любым классом объектов 9.3, который вы называете)
if ([NewFeature class]){
//then use it if available
//The code will land here if it is available to the OS the device is using
}else{
//use older alternative way
}