Подтвердить что ты не робот

Как построить против старых версий iOS с последними загрузками Xcode?

У меня установлено несколько версий Xcode. Я могу построить свой проект против более старых версий iOS, запустив старый Xcode. Но как я могу использовать более новые версии Xcode для сборки против более старых версий iOS?

В настройках проекта есть раскрывающийся список Base SDK. Он предлагает только самую последнюю версию iOS для выбора.

В разделе/​​Developer/Platforms/есть папка iOS.platform, которая содержит следующее:

SDKs/
  iPhoneOS3.2.sdk
  iPhoneOS4.1.sdk

Наконец, есть интересная папка под названием DeviceSupport, которая содержит целую кучу версий от 3.0 до 4.1!

Должен быть способ скопировать файлы SDK/DeviceSupport из старого Xcode в новый Xcode и сделать более старые, такие как iOS 4.0 или даже 3.0. Как?

4b9b3361

Ответ 1

Чтобы сделать цель приложения, выполняемую в нескольких версиях iOS, относительно проста: Установите "Base SDK" в настройках ваших проектов на новейший номер версии iOS, функции которого вы можете захотеть. Установите "Цель развертывания ОС iPhone" на самый старый номер версии iOS, который вы поддержите

вам нужно будет установить более старые версии xcode, поскольку новый симулятор будет поддерживать только новые версии ios

http://developer.apple.com/library/mac/#documentation/Xcode/Conceptual/XcodeCoexistence/Contents/Resources/en.lproj/Details/Details.html

Ответ 2

Это стало сложнее в Xcode 3.2.5 (iOS 4.2.1), поскольку отдельные значения "Base SDK" для устройства и симулятора заменены одним "SDK для iOS".

См. мое сообщение в XCode/Simulator: как запустить более старую версию iOS? для получения подробной информации о том, как получить доступ к более старым версиям SDK для Simulator в этом последнем Xcode.

Ответ 3

Я думаю, что вы всегда должны строить с использованием последнего SDK и просто устанавливать цель развертывания в соответствующую версию. Чтобы убедиться, что ваше приложение работает правильно, внимательно проверьте все версии и, кроме того, проверьте документацию, если используемые API-интерфейсы были изменены/удалены/устарели в разных версиях SDK!