Можно ли писать приложения, поддерживающие версии iOS 3.x, с помощью Xcode 4? Если да, то как? И есть ли у Apple какие-либо официальные рекомендации по обратной совместимости приложений?
Поддержка iOS 3.x в Xcode 4
Ответы (4)
Чтобы ваше приложение успешно работало на устройстве iOS 3.x, выполните следующие действия (Xcode 4.2):
Нажмите на название своего проекта, выберите цель и в разделе «Настройки сборки»
а) Установите для параметра «Цель разработки iOS» (в разделе «Развертывание») значение 3.0.
б). Добавьте "armv6" в список "Архитектур" (в разделе "Архитектуры").
c) Установите «Другие флаги компоновщика» (в разделе «Связывание») на «-weak-lSystem».
В вашем файле Info.plist удалите значение «armv7» из «Требуемых возможностей устройства» (UIRequiredDeviceCapabilities).
В вашем коде:
а). Не используйте
userInterfaceIdiom
. Если вам нужно знать, что это за устройство (iPhone или iPad), см. Как заставить UI_USER_INTERFACE_IDIOM () работать с iPhone OS SDK‹ 3.2.б) Не используйте window.rootViewController. Вместо этого используйте
[window addSubview: self.mainViewController.view];
, чтобы добавить вид главного контроллера в окно.Щелкните имя проекта, выберите цель и в разделе «Фазы сборки» / «Связать двоичный файл с библиотеками» установите для «UIKit.framework» значение «Необязательно». Также установите необязательный любой дополнительный фреймворк, который недоступен в iOS 3. Например, если вы используете фреймворки iAd или Twitter, они должны быть установлены как необязательные. Перед использованием проверьте наличие дополнительных фреймворков в вашем коде.
При запуске на реальном устройстве скомпилируйте приложение с последней версией SDK. Для этого выберите второй элемент в раскрывающемся списке «Схема» (иначе вы получите ошибку компиляции, связанную с дополнительными SDK):
self.window.rootViewController = self.viewController;
на [self.window addSubview: self.viewController.view];
в AppDelegate.m
- person Chad von Nau; 12.02.2012
Да, вы можете разрабатывать приложения, поддерживающие предыдущие версии iOS, с помощью текущего iOS SDK.
Официальные рекомендации см. В Руководстве по совместимости SDK < / а>.
Версия Xcode, которую вы используете, не связана с версией iOS, которую может поддерживать ваше приложение. Чтобы выбрать версию iOS, которую поддерживает ваше приложение, просто измените цель развертывания iOS в настройках проекта. Тогда просто убедитесь, что не используете API более поздних версий.
Конечно, вы можете использовать Xcode 4 для нацеливания на iOS 3.x в качестве цели развертывания, но вы не сможете моделировать свою программу на симуляторе iOS 3.x SDK. Таким образом, вы вполне сами по себе (то есть, если вы используете какую-либо функцию только для iOS 4.x, вы не узнаете об этом, пока не протестируете на физическом устройстве).
Вам нужна более старая версия Xcode для отладки с использованием более старого смоделированного SDK.