Совместимость iPhone SDK с использованием __IPHONE_OS_VERSION_MIN_REQUIRED - PullRequest
1 голос
/ 23 июня 2011

Я искал, включая Руководство по совместимости iOS SDK, но не могу объяснить это.

Я понимаю, что:

  • Цель развертывания - самая ранняя ОС версия приложения может работать на
  • Базовый SDK - это SDK, которым он будет составлено с использованием и чьи функции может использоваться, если устройство времени выполнения поддерживает их

Я борюсь с тем, как можно использовать __IPHONE_OS_VERSION_MIN_REQUIRED, если это исправлено во время компиляции, а ОС устройства известна только во время выполнения. Поэтому код, который я отправляю, всегда будет компилироваться одинаково.

Или несколько версий компилируются автоматически?

Может кто-нибудь объяснить, пожалуйста?

Большое спасибо,

Крис.

Ответы [ 2 ]

1 голос
/ 23 июня 2011

IPHONE_OS_VERSION_MIN_REQUIRED является определением - поэтому, хотя ваша цель развертывания может быть низкой, вы можете использовать некоторые важные устаревшие функции, если ваше приложение должно быть сильно совместимо с рядом версий iOS.

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

Вы также можете найти это полезным:

Как настроить таргетинг на конкретную версию iPhone?

1 голос
/ 23 июня 2011

Вы правы, что __IPHONE_OS_VERSION_MIN_REQUIRED исправлено во время компиляции. Эти константы и макросы могут стать полезными, если вы компилируете свое приложение для разных платформ и версий. Поэтому, если вы скомпилируете одну версию своего приложения для iOS 3.0 и одну для iOS 4.0, вы можете использовать __IPHONE_OS_VERSION_MIN_REQUIRED, чтобы удалить весь код iOS 4.0 из вашей версии iOS 3.0 во время компиляции.

Поскольку AppStore вынуждает вас использовать какую-то последнюю версию SDK, вы вынуждены использовать 4.0 SDK, даже если вы нацелены на устройства 3.0. __IPHONE_OS_VERSION_MIN_REQUIRED будет полезен только при использовании более старого SDK. Поскольку вы можете просто установить цель развертывания на более низкую версию, вам придется проверять версию iOS во время выполнения.

Вы можете использовать метод, описанный здесь , чтобы проверить версию iOS во время выполнения

...