Лучший способ определить минимально возможную цель развертывания iOS / macOS - PullRequest
0 голосов
/ 07 октября 2018

Существует ли способ, исходя из кодовой базы iOS или macOS, определить минимально возможное значение IPHONEOS_DEPLOYMENT_TARGET или MACOSX_DEPLOYMENT_TARGET, которое я могу безопасно установить для проекта, чтобы охватить наибольшее потенциальное количество поддерживаемых устройств?Я не хочу просто произвольно сказать «iOS 11» или что-то еще, потому что это исключило бы пользователей старых операционных систем.С другой стороны, для каждого вызова API требуется определенная версия ОС, и у меня нет учета каждого отдельного вызова API, и я не хочу просматривать их все.

Например, может быть, для одного из тысяч API-интерфейсов, которые вызывает мое приложение, требуется iOS 10 и произойдет сбой в iOS 9. Есть ли способ узнать?Просто установка IPHONEOS_DEPLOYMENT_TARGET на 8.0, кажется, прекрасно компилируется (без предупреждений), но это не обязательно означает, что я хорош для развертывания на устройствах 8.0.

Этот похожий 8-летний вопрос предполагает, что в то время такого инструмента не было.Хотите знать, если что-то изменилось с тех пор.

1 Ответ

0 голосов
/ 07 октября 2018

Xcode 10 (и Xcode 9) предупредит вас, если у вас есть какие-либо API-интерфейсы, которые могут быть проблемой.Например, если ваша цель развертывания установлена ​​на iOS 11, и вы пытаетесь использовать API, добавленный в iOS 12, Xcode предупредит вас.

Так что обновите цель развертывания вашего проекта или цели на то, что вы хотите, и разрешите Xcodeвыдает предупреждения о таких API или даже устаревших API.

Затем вы можете использовать кнопку «исправить» в предупреждении, чтобы добавить соответствующую проверку if (@available ...) вокруг нового API, а затем вы можете добавить любой необходимый код.в else для поддержки более старой версии iOS.

Если вы чувствуете, что у вас слишком много таких проблем с API, измените цель развертывания по желанию.

...