#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 104. Как я могу найти остальные устаревшие функции, которые я изменил во время разработки, не используя фактическое устройство iOS 9?
5. Вы можете добавить симулятор ios9 и протестировать его. Лично я не буду конвертировать свой код в Swift 3 и iOS 10, пока не буду готов отказаться от более ранних версий. Сосуществование слишком болезненно