Добавление старых SDK для iOS в Xcode 4.1 в Lion - PullRequest
20 голосов
/ 22 июля 2011

Я только что установил Lion и Xcode 4.1.Как добавить старые SDK, чтобы я мог собрать и запустить их в 4.1 или 4.2 в iPhone / iPad Simulator?Xcode 4.1 поставляется только с iOS 4.3 SDK.

Есть ли у Lion какой-то минимальный SDK для сборок?

Спасибо,

Ответы [ 8 ]

27 голосов
/ 16 апреля 2012

На самом деле - это возможность добавления старых SDK, если вы все еще можете получить более старую версию Xcode с более старым SDK. Иногда это тоже полезно: когда вы делаете это, вы узнаете о неподдерживаемых константах и ​​методах, которые вы можете использовать во время компиляции, а не во время выполнения. Вот как это сделать.

  1. Получите более старую версию Xcode с более старым SDK. Apple iOS Dev Center в настоящее время перечисляет 4.3 SDK с загрузкой Xcode 3.2.6.

  2. Смонтируйте dmg и откройте папку Packages, скрытую внутри dmg через терминал:

    open / Volumes / Xcode \ и \ iOS \ SDK / Packages /

  3. Дважды щелкните файл pkg для нужной версии SDK. Я искал iPhoneSDK4_3.pkg, но, в дополнение к 4.3, нашел такие старые пакеты, как iPhoneSDK3_0.pkg. Так что, возможно, старые SDK могут быть упакованы вместе с загрузкой из App Store, если вы знаете, где их найти (я не знал).

  4. Пусть он будет установлен в выбранной папке, так как вы не сможете принудительно установить его в Applications / Xcode.app / Contents / Developer (там, где сейчас папка Developer)

  5. Вы найдете пакет, установленный в папке Platforms на выбранном вами томе. Переместите соответствующий SDK в папку для разработчиков в Xcode.app. Скорее всего, вам придется использовать sudo:

    sudo mv /Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS4.3.sdk /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/

  6. Перезапустите Xcode, и вы увидите новый (старый) SDK, указанный в ваших опциях для Base SDK. Ура!

Дополнение от 12.09.2013

Если «старый SDK», который вы пытаетесь добавить, поставляется в комплекте с Xcode 4.3 или более поздней версией, добавить SDK так же просто, как загрузить Xcode из центральной ссылки разработчика, которая гласит «Ищете старую версию Xcode?» (в настоящее время указывает здесь ), монтирует dmg, затем копирует соответствующие файлы.

В терминале вы должны сделать что-то вроде этого (отредактируйте соответствующий номер версии SDK):

cp -R /Volumes/Xcode/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS6.1.sdk /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/

Для SDK от версий Xcode до 4.3 более старые шаги все еще актуальны.

Я обнаружил, что это работает для того, чтобы заставить GM Xcode 5 компилировать сборки, которые несут старый пользовательский интерфейс iOS 6, даже когда они развернуты на устройствах iOS 7. Полезно для исправления ошибок в ожидании редизайна пользовательского интерфейса. Тем не менее, должен быть более простой способ получить пользовательский интерфейс iOS 6 на устройстве iOS 7.

8 голосов
/ 03 мая 2012

Откройте Xcode и откройте Preferences (Xcode -> Preferences menu). Щелкните значок «Загрузки» и перейдите на вкладку «Компоненты». Все версии от 3.0 до 5.1 должны быть доступны. Просто нажмите Установить для тех, которые вы хотите использовать.

8 голосов
/ 22 июля 2011

Вы не можете.Однако вы можете нажать на запись верхнего уровня в File Navigator.Это приведет вас к настройкам приложения.Перейдите на вкладку «Настройки сборки» и измените цель развертывания iOS на любую версию iOS, с которой вы хотите поддерживать (самую раннюю версию, которую вы поддерживаете).

См. «Редактирование настройки сборки…»:http://developer.apple.com/library/ios/documentation/ToolsLanguages/Conceptual/Xcode4UserGuide/Building/Building.html#//apple_ref/doc/uid/TP40010215-CH9-SW5

6 голосов
/ 29 января 2013

Ни один из этих ответов не работал для меня для Mac OS 10.8 и XCode 4.5. Но теперь, когда все установлено в папке «Приложения», управлять им стало намного проще.

Вариант № 1: Хранить старую копию XCode легко, переименовав ее перед установкой новой. Затем вы можете использовать Product-> Preform Action-> Run Without Building в новой версии для тестирования на новых устройствах или новых симуляторах.

Вариант № 2: Если вы ДЕЙСТВИТЕЛЬНО хотите собрать более старые SDK в новом XCode, то вы можете просто скопировать SDK с помощью Finder. Для этого вам понадобится установить более старую версию XCode в разделе «Приложения». В следующем примере я просто переименовал XCode 4.4 в XCode_old перед установкой XCode 4.5. Примечание. Вы можете щелкнуть правой кнопкой мыши файл .app и выбрать «Показать содержимое», чтобы получить доступ к этим файлам, или просто использовать cp из окна терминала.

from: /Applications/Xcode_old.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS5.1.sdk
to:   /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/

Затем iOS 5.1 появится в настройках сборки как Bask SDK. Вы можете сделать то же самое для симуляторов:

from: /Applications/Xcode_old.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator5.1.sdk
to:   /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/
1 голос
/ 26 декабря 2011

Вы должны запустить свое приложение в более старой версии XCode, которая поставляется вместе с более старой версией iOS. У меня 3.2.5 установлен под /Developer-3.2.5/. Я должен сказать, что это примерно в 10 раз быстрее, чем Xcode 4 ... Вы можете скачать старые версии здесь: http://iphonesdkdev.blogspot.com/2010/04/old-versions-of-iphone-sdk.html

1 голос
/ 22 июля 2011

Вы не можете, но он прекрасно подойдет для устройства, подключенного к старой версии iOS (на котором вы должны проводить правильное тестирование).

0 голосов
/ 13 января 2013

В дополнение к ответу Стивена вы можете найти более старые версии XCode, включая более старые SDK:

Ищете более старую версию Xcode?

0 голосов
/ 17 августа 2011

У меня была похожая проблема в Xcode 4.02 для Snow Leopard с использованием SDK 4.3. Я хотел протестировать iPhone 3G, но iOS4.2 является последней (и правильной версией) для этого устройства. Чтобы «увидеть» и запустить на этом устройстве в схеме, мне пришлось изменить настройки сборки для цели развертывания iOS, как описано выше. (кстати, у вас также должны быть ограничения на iPhone, чтобы Xcode мог установить приложение :))

...