Проблема обратной совместимости iOS в Xcode

Я разрабатываю Xcode 4.6.2, который включает iOS 6.1 SDK. Мне нужно сделать мое приложение совместимым с iOS 5, и я точно не знаю, как мне управлять этой обратной совместимостью. Я загрузил симулятор iOS 5.0, но я не уверен, что мне также нужно получить пакет iOS 5.0 SDK, который я не знаю, в какую версию Xcode он включен. Я также установил цель развертывания на 5.0. Предупреждает ли Xcode, если я пытаюсь использовать в коде функции, доступные только в более поздних версиях iOS? Должен ли я пытаться использовать только функции, доступные в iOS 5.0, или лучше всего проверить текущую версию iOS устройства и решить, может ли оно использовать новейшие функции, если версия iOS более поздняя, ​​чем iOS 5.0?

заранее спасибо


person AppsDev    schedule 04.07.2013    source источник
comment
@rmaddy Я думаю, что не совсем... Я читал в этот документ, что существует два подхода: создание цели, оптимизированной для одной версии, или создание цели для диапазона версий с условиями. Дело в том, что я не знаю, какой подход выбрать, так как я не совсем понимаю, как каждый из них будет работать на этапе разработки (нужны SDK и обнаружение функций, недоступных в более старых версиях).   -  person AppsDev    schedule 04.07.2013
comment
@rmaddy Я предполагаю, что даже если я оптимизирую для iOS 5, он всегда будет работать на более поздних версиях iOS, верно? Проблема возникает только в обратной совместимости...   -  person AppsDev    schedule 04.07.2013
comment
Вы всегда должны использовать последний SDK в качестве базового SDK. На данный момент это 6.1, но скоро будет 7.0. Писать сейчас новое приложение, поддерживающее iOS 5, практически бессмысленно. Apple заявляет, что более 95% пользователей используют iOS 6. Вам решать, хотите ли вы поддерживать iOS 5 или нет. Но вы должны поддерживать iOS 6. Если вы решите также поддерживать iOS 5, вам необходимо использовать методы, показанные в документе «Руководство по совместимости SDK», чтобы убедиться, что вы не используете API-интерфейсы iOS 6, если приложение находится на устройстве iOS 5.   -  person rmaddy    schedule 04.07.2013
comment
Apple поставляет только последний iOS SDK с Xcode и говорит нам установить цель развертывания, например. до iOS 5.0. К СОЖАЛЕНИЮ, компилятор не предупреждает о методах, недоступных в версии для развертывания, даже если все методы помечены макросами доступности.   -  person Martin R    schedule 04.07.2013
comment
@MartinR Похоже, если я установлю и цель развертывания, и базовые настройки SDK на 5.0, мне нужно будет искать пакет SDK для iOS 5.0 ... везде, где он включен ... но это не гарантирует, что я выиграл не использовать какую-либо функцию, которой нет в iOS 5.0, и в то же время я смогу работать в самых последних версиях iOS?   -  person AppsDev    schedule 04.07.2013