Обновить приложение iOS до новой ОС? - PullRequest
4 голосов
/ 09 августа 2011

Мне немного любопытно, что происходит в следующей ситуации.У вас есть приложение в магазине iTunes (с покупателями), которое использует iOS4, затем вы выпускаете обновление для приложения, которое использует более новую iOS.

  • пользователи, которые обновились до "более новой iOS", получат обновление.
  • Что случится с теми, кто не обновился, они все еще смогут использовать свою старую iOS4версия?

Ответы [ 3 ]

11 голосов
/ 09 августа 2011

Ваша «цель развертывания» - вот что важно.Установка цели развертывания позволяет вашему приложению установить минимальную требуемую версию ОС.Многим разработчикам нравится устанавливать это как можно раньше, если только ваше приложение не зависит от функций, доступных только в новой версии iOS.

Допустим, у вас есть приложение, скомпилированное с iOS 4 SDK, и установите 3.0 в качествецель развертывания.

  • Пользователи с iOS 3 или iOS 4 (и iOS 5) могут загрузить ваше приложение и использовать его.

Теперь вы выпускаете обновление, скомпилированное с iOS5 SDK и установите 4.0 в качестве цели развертывания.

  • Пользователи с iOS 4 или iOS 5 могут загрузить или обновить приложение и использовать его.
  • Пользователи с iOS 3, которые приобрели вашеприложение уже не может обновиться, но они могут продолжать использовать существующую установленную версию.
  • Пользователи с iOS 3, которые еще не приобрели ваше приложение, теперь не смогут это сделать.

Apple будет хранить только одну версию вашего приложения в магазине приложений.

1 голос
/ 09 августа 2011

Если они не загрузят более новую версию, они, конечно же, смогут использовать старую.Возможно, однако, что они непреднамеренно загружают обновление через iTunes на рабочем столе.Сам App Store на устройстве будет проверять, совместима ли версия ОС устройства с загружаемым приложением, а iTunes - нет, поэтому он заменит старую версию в библиотеке iTunes, что приведет к удалению приложения с устройства, когдапользователь синхронизирует его (так как загруженная версия не может быть установлена).

Таким образом, для существующих приложений вы должны поддерживать цель развертывания как можно ниже и решать во время выполнения, какие дополнительные функции новой версии ОС вы можете использовать.,Таким образом, вы можете сохранить совместимость со старыми версиями ОС, но по-прежнему предоставлять дополнительные функции для тех, кто обновил.

1 голос
/ 09 августа 2011

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

Кроме того, обновления никогда не «навязываются» пользователю - они всегда являются необязательными. В случае, когда приложение работает только на версии iOS, которая выше, чем у пользователя, обновление вообще не будет предлагаться пользователю. Они по-прежнему смогут использовать старую версию, установленную на их устройстве. Приложения не имеют срока действия.

Если вы хотите сохранить совместимость для максимально возможного количества версий iOS, вы можете установить целевой уровень развертывания iOS на минимальную ОС, для которой ваше приложение должно быть совместимым. Номер версии SDK не должен иметь значения, но для поддержки новейших функций iOS вам потребуется последняя версия iOS SDK.

Вам все равно придется проверить совместимость своих API с версией, на которую вы нацелены, в качестве минимальной ОС. Смотрите здесь и ищите "API Diffs". В каждом документе перечислены изменения API для этой версии iOS. Это перечислит новые и удаленные API с той версии. Например, UIPrintPaper, который указан в документе API diffs от iOS 4.1 до 4.2, является новым API для iOS 4.2. Таким образом, при запуске на iOS 4.1 или более ранней версии приложение будет аварийно завершать работу при вызове этого API. Использование #if __IPHONE_OS_VERSION_MAX_ALLOWED <= __IPHONE_4_1 вокруг вашего UIPrintPaper снайпера решит эту проблему.

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