2010-09-19 3 views
18

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

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

Под/Разработчик/Платформы/есть папка iOS.platform, которая содержит следующее:

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

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

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

+0

Здесь очень полезная тема, особенно для пользователей Xcode 4 на OS X Lion: http://stackoverflow.com/questions/7459399/ios-simulator-only-list-the-latest-ios-version- how-can-i-set-early-versions – Jan

ответ

21

Чтобы сделать цель приложения, которая работает на нескольких версиях iOS, относительно проста: Установите «Base SDK» в своих проектах на самый новый номер версии iOS, функции которого вы можете захотеть. Установите «iPhone OS Deployment Target» старейший номер версии прошивки, что вы будете поддерживать

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

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

+1

, если у вас есть более старые SDK, вы можете добавить их в {Xcode_Path} /Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/ Я скопировал свой старый (4.1, 4.2, 4.2, 5.0)) SDK, когда я обновил Xcode (поскольку обновления Xcode имеют только последний SDK), и я вставил их обратно в эту папку, и теперь я смогу имитировать старые SDK на одном и том же симуляторе iOS. Вы все равно должны установить более старые файлы Xcode, чтобы получить доступ к старым SDK, но как только у вас есть это, вы можете удалить старый Xcode. – Daniel

+9

Ссылка мертва. – cmroanirgo

4

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

Подробнее о том, как получить доступ к более старым версиям симулятора SDK в этом последнем Xcode, см. В статье XCode/Simulator: How to run older iOS version?.

0

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

+4

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

Смежные вопросы