iOS Development: как я могу запустить приложение iPhone 4.2 на симуляторе iPhone 3.2?

Я занимаюсь разработкой iOS, и я создаю простое приложение, которое будет поддерживать версию iOS от 3.2 до 4.2. Я тестировал его достаточно хорошо в последней версии Xcode на симуляторе 4.2, но я хотел бы также имитировать его на устройстве iOS 3.2. Прочитав несколько руководств по этому вопросу, мне удалось загрузить и установить более старую версию xcode вместе со старым 3.2 SDK, но когда я создаю свой проект в старой версии Xcode, я получаю тонны ошибок из-за всех iOS 4.2 функциональность, которую старая версия Xcode не поддерживает. Я слабосвязываю все фреймворки 4.2, но я все еще получаю ошибки. Как я могу получить свое приложение 4.2 для успешной сборки в этой старой версии Xcode и заставить его работать в симуляторе iPhone 3.2?

Большое спасибо за вашу мудрость!

Вам нужно добавить #ifdef __IPHONE_4_2#endif вокруг любых строк, которые ссылаются на функции, которые существуют только в 4.2. Таким образом, компилятор 3.2 будет создавать ваше приложение, как если бы эти строки не существовали.

Вы должны быть предельно осторожны, чтобы структурировать эти утверждения таким образом, чтобы они точно отражали биты кода, которые были бы отключены при запуске встроенной версии 4.2 на 3.2, иначе нет особого смысла.

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

Вероятно, это вызовет несколько предупреждений о функциях / методах, которых вы не знали, в 3.2. Убедитесь, что у них есть соответствующий резервный код.

(Кстати, Apple, как известно, отказалась от приложений iPhone с базовым SDK 3.2. Вам нужно поддерживать минимум 3.1.3, если вы вернетесь до 4.0)

Вы выбрали вариант установки базового SDK на 3.0 или других? Потому что при этом вы можете запускать новые API-интерфейсы, доступные в iOS 4.2, и на более старых ОС.

ура

Во второй проблеме, фактически запуская ее в 3.2 версии iPhone в iOS-симуляторе: я изо всех сил пытался это сделать – Xcode 4.0.2, установить цель развертывания для iOS 3.2, установить мой проект только на iPhone, но когда я пытаюсь запустить в iOS Simulator под версией 3.2, симулятор превращается в симулятор iPad, даже если он работал как симулятор iPhone, пока не выбрал номер версии.

Это немного разочаровало меня. Но я прочитал это, и это имело смысл:

http://en.wikipedia.org/wiki/IOS_version_history

IPhone никогда не работал 3,2; это был выпуск iPad. Итак, хотя меню Hardware> Version в iOS Simulator отображает 3.2 (7W367A), предположительно этот параметр предназначен только для совместимости с Hardware> Device> iPad. Симулятор применяет это правило, когда переключает меня в симулятор iPad. Это имеет смысл.

Поэтому мне понадобится симулятор 3.1.3 или более старый, чтобы запускать мое приложение, как если бы он работал на iPhone 3.x поколения. Это не доступно в моей сборке Xcode 4, поэтому теперь мне кажется, что я просто не могу ничего с этим поделать, если не ставить старые сборки Xcode на мою машину.

Я думаю, что правильный способ заключается в следующем: 1. Если вы разрабатываете версию 4.2, то у вас должна быть установлена ​​версия Xcode 4.2. 2. При создании приложения на устройствах 4.0 и 3.2 ОС выберите базовый SDK для версии 4.2 и целевое устройство развертывания до минимальной версии, которую вы хотите поддерживать, скажем, 3.2. Это сделает ваш код совместимым с более низкой версией, и ваше приложение будет загружено в более низких версиях.

Также для поддержки новых API в более низких версиях вы можете перейти по ссылке: http://www.marco.org/1648550153

Я надеюсь, это поможет вам

Вы можете запускать как 3.2, так и 4.x симуляторы в последнем Xcode (не в то же время, конечно!). Вы должны установить «Base SDK» в 4.2 и «Цель развертывания iOS» в 3.2. Теперь вы можете выбрать 3.2 Simulator (или позже) из всплывающего меню «Обзор» в верхнем левом углу окна проекта. Также вы можете выбрать версию симулятора в самом приложении iOS Simulator через пункт меню «Hardware-> Version».

  • UISegmented view to change views
  • Какова цель значения «Не указывать код» в XCode -> Настройки сборки -> Подписание кода?
  • Хранение счета в XCode с помощью быстрой
  • Невозможно изменить шрифт в XCode 6.1.1
  • Предварительный просмотр NavController
  • Оболочка силовой линии XCode
  • Как указать квадратный (фактически круглый) аватар в Xcode 5 раскадровки с автоматической компоновкой?
  • Xcode - «ld: framework not found» происходит в рамке, не включенной напрямую
  • Запуск iTunes Store в приложении с поиском
  • Невозможно скомпилировать приложение iOS с Visual Studio 2015
  • React Native - Linked Library работает в Xcode, но не при запуске w / Packager
  • Interesting Posts
    Давайте будем гением компьютера.