Как развернуть приложение для более низкой цели, чем оно было написано для? iOS

#ios #objective-c #deployment

#iOS #objective-c #развертывание

Вопрос:

Изначально я написал приложение для iOS 9.3, позже, когда появилась iOS 10, я изменил сборку на 10 и обновил старые функции до их более новых версий. Финальная версия была с целью развертывания 9.3, чтобы предоставить приложение также для пользователей, которые еще не обновились. При использовании приложения на устройствах 9.3 iOS начали возникать необоснованные сбои. Я обнаружил, что проблема заключалась в обновленных методах для более новой формы iOS 10. Как выпустить приложение для более низкой цели развертывания, в то время как код соответствует новейшим формам? Нужно ли мне изменить эти методы обратно на версию iOS 9.3? Будут ли они поддерживаться на 100% на устройствах iOS 10?

Комментарии:

1. В некоторых случаях вам может потребоваться протестировать определенные версии и обрабатывать каждую по-разному; Как правило, если вы установите для своей цели значение 9.3, Xcode предупредит вас о несовместимости. Однако ваш вопрос слишком широк, и вам необходимо предоставить конкретные сведения о конкретных ошибках и / или сбоях, включая соответствующий код

2. В этом случае проблема возникает, например, в -[UIApplication openURL:options:completionHandler:]: нераспознанный селектор, отправленный экземпляру 0x7fee9070bcd0, который является методом из iOS 10, когда я запускаю его на симуляторе 9.3

3. Таким образом, в этом случае вы можете либо продолжать использовать устаревшую openURL функцию, либо использовать if #available для включения кода iOS 9 и iOS 10

4. Как я могу найти остальные устаревшие функции, которые я изменил во время разработки, не используя фактическое устройство iOS 9?

5. Вы можете добавить симулятор ios9 и протестировать его. Лично я не буду конвертировать свой код в Swift 3 и iOS 10, пока не буду готов отказаться от более ранних версий. Сосуществование слишком болезненно