Как я могу поддерживать iOS 4.X SDK и iOS 5 SDK в своем приложении для iPhone? - PullRequest
1 голос
/ 15 ноября 2011

Я пишу приложение для iPhone, в котором я хочу поддерживать наибольшую возможную базу пользователей на данный момент (с минимальными трудностями), поэтому я решил, что нацеливание на IOS 4.3+ будет хорошим подмножеством пользователей для моей аудитории.

Я начал работать в XCode 4.2, но вернулся к XCode 4.1, когда понял, что шаблоны проектов изменились, и все казалось очень тесно переплетенным с раскадровкой, ARC и т. Д.

Я построил свое приложение так, что я действительно хочу проверить его на своем устройстве, на котором установлена ​​iOS5. Когда я пытаюсь использовать его, я получаю это сообщение, как только нажимаю «использовать для разработки» в Organizer / XCode:

enter image description here

Настройки сборки проекта выглядят так:

enter image description here

У меня такой вопрос: как заставить это приложение, встроенное в XCode 4.1, работать на телефонах iOS 4.3 и iOS 5?

iOS SDK не имеют обратной совместимости? Я пришел из разработки для Android, в которой менее современный SDK будет работать на более новом SDK - это отличается в мире iOS? И если да, то как это обычно обрабатывается?

Буду очень признателен за любые указания относительно того, как мне поступить.

Ответы [ 4 ]

4 голосов
/ 15 ноября 2011

Вы можете пойти дальше и открыть свое приложение в Xcode 4.2, и оно все равно должно работать.Я работаю над конкретным приложением с Xcode 3.x дней, и я почти закончила, прямо сейчас в Xcode 4.2.Это не должно быть проблемой.Если вы хотите работать с Xcode 4.1, у вас все будет хорошо, но вы не сможете использовать новые функции, представленные в iOS 5.

Есть несколько аспектов "кросс-версии" разработки, на которые стоит обратить внимание.

  1. Тестирование: Вы можете тестировать только на той версии iOS, которая включена в ваш SDK или установлена ​​на физических устройствах, которые у вас могут быть.SDK, как правило, поставляется только с последней версией iOS, иногда включается и предыдущая, но с момента выхода Xcode 4 более старые SDK постепенно устаревают с каждым выпуском.Это не означает, что ваше приложение, связанное с iOS 5 SDK, не будет работать на старых версиях iOS.Это зависит только от того, как вы реализуете новые функции.

  2. Функции: Для правильной поддержки более старых версий iOS вы хотите убедиться, что вы этого не делаетереализовать новые функции без , должным образом проверяя наличие классов, методов и свойств, которые были представлены в более новых версиях ОС .В отличие от Android, вам не нужно беспокоиться о миллионе аппаратных конфигураций.; -)

  3. Слабое связывание: Чтобы поддерживать новую функцию и при этом быть совместимым со старыми версиями iOS, необходимо ослабить связь с используемыми фреймворкамиреализовать новые функции.Подробнее об этом можно прочитать в Документации Apple по слабым связям .

  4. Цель развертывания: Параметр, запрещающий загрузку приложения вболее старые устройства называются «целью развертывания».Если вы установите этот параметр на 3.1.3, то ваше приложение будет работать на iOS 3.1.3 и выше.Помните, что если вы не закодируете правильную проверку версии, ваше приложение может сломаться.

  5. ARC: Вы можете включить или отключить автоматический подсчет ссылок, когдаВы создаете проект.ARC сканирует вашу программу только во время компиляции, а не во время выполнения, она не нарушает работу приложения в более старых версиях ОС.

2 голосов
/ 15 ноября 2011

Вам нужна последняя версия XCode и iOS SDK для установки ваших приложений на ваш телефон iOS 5.0.Это не означает, что верно обратное - вам не нужна та же версия iOS на вашем устройстве, что установлена ​​на вашем компьютере.

Надеюсь, это поможет!

1 голос
/ 15 ноября 2011

XCode 4.1 не поддерживает iOS5 в том смысле, что пакет XCode не содержит iOS5 SDK.Таким образом, вы должны вернуться к Xcode 4.2 и нацелить свой проект на iOS 4.3 (вы также можете нацелить его на iOS 4.0 с этой версией Xcode, но вы не сможете имитировать его; вы даже можете загрузить более старые версии пакета iOS 4.x сменю настроек XCode, если вам действительно нужно смоделировать их на вашем устройстве).

Вы можете отказаться от ARC, если хотите, этот выбор предоставляется вам при создании проекта, так что не беспокойтесь;но учтите, что ARC делает свое дело только во время компиляции, а не во время выполнения, поэтому ваша обратная совместимость будет сохранена, если вы решите использовать эту технологию.Наконец, если вам не нужен Storyboard, просто выберите пустой шаблон приложения, и он просто поместит в ваш проект только основные файлы.Из этого шаблона вы можете создать любое приложение для iOS, и я обычно придерживаюсь этого подхода.

1 голос
/ 15 ноября 2011

Вы можете использовать последнюю версию SDK и просто установить версию «IOS Deployment Target» на 4.3 в настройках сборки проекта.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...