Какую версию iPhone "Active SDK" следует использовать?

Текущий (по состоянию на декабрь 2008 г.) iPhone SDK позволяет мне выбирать между 3 версиями, когда я хочу создать приложение: 2.0, 2.1, 2.2. - Я проигнорирую 2.1 ниже.

Мои предположения:

  • 2.2 имеет больше функций API, чем 2.0,
  • 2.2 исправлены ошибки с 2.0,
  • 2.2 обратная совместимость с 2.0 (как для построения, так и для работы),
  • Если я создам SDK 2.0, мое приложение будет работать на iPhone 2.2,
  • Если я создам с SDK 2.2, мое приложение не будет работать на iPhone 2.0.

Я бы подумал, что лучше всего использовать самую раннюю версию, которая может создать приложение, таким образом, она будет работать на iPhone, работающих с более старыми ОС.

Но есть ли риск, что мое приложение будет что-то упускать, если я построю его с помощью 2.0? Может быть, некоторые скорости или более приятные элементы пользовательского интерфейса. Но может быть, не так много разницы между 2.0 и 2.2, чтобы даже беспокоиться об этом?

Итак, мой вопрос: какой SDK я должен выбрать?

  • Самый ранний SDK, с которым я могу построить, расширить свой целевой рынок.
  • Самый последний SDK всегда, так что мое приложение выигрывает от улучшений - ценой потенциального снижения моего рынка.

(И если ответ очевиден, почему у меня есть выбор?!)

Ответ 1

Я бы выбрал вариант №1 - скомпилировал его до версии 2.0. Это то, что мы делаем для нашего приложения. Есть еще много людей, которые запускают старый 2.0 O/S, и если вы скомпилируете до 2.2, ваше приложение не будет работать на своем устройстве.

Тем не менее, если вы разрабатываете приложение и сталкиваетесь с ошибкой и узнаете, что оно было исправлено в более поздней версии прошивки, у вас может не быть большой возможности, если не будет обходного пути. В каждую новую версию добавлены новые функции, хотя я не знаю полного списка того, что эти функции (на уровне API).

Ответ 2

Вы можете использовать iPhone OS 2.2 SDK и по-прежнему компилироваться для iPhone OS 2.0; то, как вы это делаете, такое же, как для Mac OS X. Используемый SDK определяет самую последнюю версию ОС, из которой вы хотите использовать API, а Цель развертывания, который вы используете, определяет самую последнюю версию ОС, которую вы хотите запустить. Оба они обычно должны быть установлены на уровне проекта в Xcode.

Итак, вы можете создать свое программное обеспечение против iPhone OS 2.2 SDK, а при работе на устройствах с 2.2 или более поздней версией используйте функции 2.2. Но вы можете установить его целевой уровень развертывания на 2.0 и не использовать функции 2.2 при работе на устройстве с установленной операционной системой до 2.2, и ваше приложение должно работать нормально.

Ответ 3

В моем тестировании, если вы используете 2.0, вы не можете использовать функциональность значка приложения, которая появляется в 2.1 (так что вам может понадобиться хотя бы использовать этот уровень)

Тим