Можно ли установить iOS 6 SDK на Xcode 5?
Xcode 5 имеет панель настроек, которая позволяет загружать симулятор iPhone 6.1, однако я не могу найти место, где он позволяет загружать iOS 6 SDK, поэтому невозможно установить активный SDK на iOS 6 при разработке с Xcode 5. Есть ли обходной путь, который позволит Xcode 5 установить iOS 6 SDK?
EDIT:
обходные пути больше не должны быть необходимы теперь, когда Xcode 5 является общедоступным и позволяет загружать предыдущие версии SDK.

15 ответов:
EDIT: начиная с 1 февраля 2014 года, Apple больше не будет принимать приложения pre-iOS7 для отправки в App Store. Таким образом, пока эта техника все еще работает, она не будет полезна для большинства читателей.
Да, это нормально. Я все еще строю с iOS 4.3 для одного проекта (прошло некоторое время с тех пор, как мы обновились; но они все еще приняли его после выхода iOS 6), и в настоящее время я создаю приложения 10.5 с Xcode 5.
посмотреть Как указать Xcode на старый SDK, чтобы его можно было использовать в качестве " базы СДК"? подробнее о том, как установить его. Вы можете использовать мой fix-xcode скрипт, чтобы связать все для вас каждый раз, когда вы обновляете.
единственный трюк-это получение старых SDK. Если у вас их нет, вам обычно нужно скачать старые версии Xcode (по-прежнему доступны на developer.apple.com), Откройте установочный пакет и поищите нужный SDK.
SDKs можно найти в пакете установщика по адресу:
Xcode.приложение / содержание / разработчик / платформы/
Я также запускал ту же проблему, когда я обновился до xcode 5, он удалил старый sdk. Но я взял копию старого SDK с другого компьютера и то же самое вы можете скачать по следующей ссылке.
http://www.4shared.com/zip/NlPgsxz6/iPhoneOS61sdk.html
(www.4shared.com тестовый аккаунт [email protected]/test)есть 2 способа работы.
1) распакуйте и вставьте эту папку /Применения/Xcode.приложение / содержание / разработчик / платформы / iPhoneOS.платформа / разработчик / SDKs и перезапустить xcode.
но это может быть снова удалено Xcode, если вы обновите xcode.
2) Другой способ-распаковать и вставить туда, где вы хотите, и перейти к /Applications/Xcode.приложение / содержание / разработчик / платформы / iPhoneOS.платформа / разработчик / SDKs и создать символическую ссылку здесь, так что SDK останется таким же, даже если вы обновите Xcode.
еще одно изменение, которое я сделал, настройка сборки > Архитектуры > стандартные (не 64) поэтому перечислите все версии целевого объекта развертывания
нет необходимости загружать zip, если вы только хотите изменить цель развертывания.
вот несколько скриншотов.
Да, я только что решил эту проблему сегодня.
- найдите файл SDK, например iPhoneOS6.1.sdk, в вашем или вашего друга старый каталог Xcode.
- скопируйте и поместите его в каталог Xcode 5 : /Применения/Xcode.приложение / содержание / разработчик / платформы / iPhoneOS.платформа/разработчик/пакеты SDK.
затем вы можете выбрать SDK, как показано ниже:
надеюсь, что это поможет вам.
найти и скачать старый SDK. старые SDK находятся здесь.
Я скопировал xcode.каталог приложений как Xcode_4.6.3.приложение.
теперь вы можете тестировать и отлаживать в обеих версиях xcode. Вы должны запустить их из соответствующих папок или создать ярлыки на рабочем столе. При построении из командной строки укажите параметр как
iPhoneOS6.1вместоiPhoneOS7.0это отлично работало для меня в Xcode5 и iOS.
перейти к в SDK xcode5 реж. Его обычно находится по адресу:
/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKsдобавьте символическую ссылку на старый SDK следующим образом:
sudo ln -s /Applications/Xcode_4.6.3.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS6.1.sdk iPhoneOS6.1.sdkили точнее из любой точки командной строки,
sudo ln -s /Applications/Xcode_4.6.3.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS6.1.sdk /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS6.1.sdk
вы можете скачать старый SDK и установить его в
Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/папка. Выход + вход только для того, чтобы убедиться, что изменения вступают в силу, и вы должны увидеть старый SDK в Вашем новом XCode
просто чтобы добавить, вы можете скачать старые версии симулятора с самим Xcode 5-просто перейдите в настройки, и вы найдете их в разделе Загрузки:
- Скачать Xcode 4.6.x из Центра разработки Apple:https://developer.apple.com/downloads/index.action
- создайте папку с именем Xcode4 в папке Applications и перетащите туда загруженный dmg.
откройте окно терминала
$sudo cp -R /Applications/Xcode4/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS6.1.sdk /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/вам будет предложено ввести пароль, так как вы находитесь внутри системной папки
- откройте Xcode 5 и вы увидите как Фнаф
просто для меня самое простое решение:
- найдите более старый SDK, например" iPhoneOS6.1 sdk " в более старой версии xcode, например. Если вы этого не сделали, вы можете загрузить его с сервера Apple Developer server по этому адресу: https://developer.apple.com/downloads/index.action?name=Xcode Когда вы открываете xcode.dmg вы можете найти его, открыв Xcode.приложение (правой кнопкой мыши и "показать содержимое") и поехали Содержание / разработчик / платформы / iPhoneOS.платформа/разработчик/SDKs / iPhoneOS6.1 sdk
![]()
- просто скопируйте папку iPhoneOS6.X sdk и вставьте его в свой xcode.приложение
- щелкните правой кнопкой мыши на вашем xcode.приложение в папке приложения.
- перейдите в раздел содержимое / разработчик / платформы / iPhoneOS.платформа/разработчик/пакеты SDK/
- просто вставить сюда.
- закройте приложение xcode и снова откройте его снова.
чтобы протестировать приложение в iOS 6 на вашем симуляторе: - Просто выберите прошивку iOS 6.0 в активной схеме.
чтобы построить свое приложение в iOS 6, поэтому дизайн вашего приложения будет более старым дизайном на iPhone с iOS 7: - Выберите iOS6. 1 в Targets - Base SDK
просто обратите внимание: при изменении базового SDK в ваших целях iOS 7.0 больше не будет доступна для построения на симуляторе !
можете сделать это, но на самом деле не обязательно
как сделать
Джейсон Ли получил ответ. При установке xCode я предпочел сохранить Предыдущие установки, а не заменять их. Так что у меня есть эти в моей папке установки
Так
/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKsсодержат различные пакеты SDK. (Замените В Xcode.приложение с правильным номером) скопируйте предыдущие SDK в
/Applications/Xcode 3.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKsвот моя папка после того, как я скопировал один.
теперь перезапустите xCode, и вы можете установить предыдущие версии SDK в качестве базового sdk.
почему не надо
Ссылаясь На Apple Documentaion
чтобы использовать определенный SDK для проекта Xcode, сделайте два выбора в настройках сборки вашего проекта.
выберите цель развертывания.
определяет самую раннюю версию ОС, на которой ваш программное обеспечение может работать.
выберите базовый SDK
ваше программное обеспечение может использовать функции, доступные в версиях ОС до и включая тот, который соответствует базовому SDK. По умолчанию в XCode это новейшая операционная система поддерживается в Xcode.
правило использует последнюю версию в качестве базового SDK и устанавливает цель развертывания в минимальную версию приложения, которое должно запускаться
например, вы можете использовать iOS 7 в качестве базового sdk и установить iOS 6 как цель развертывания. Запустите на iOS 6 simulator, чтобы проверить, как он работает на iOS 6. Установите симулятор, если он недоступен со списком симуляторов.
дополнительно вы можете безоговорочно использовать функции до iOS 6. И условно вы можете поддерживать новые функции iOS 7 для новых обновленных устройств при поддержке предыдущих версий.
Это можно сделать с помощью Слабо Связанные Классы,Слабо Связанные Методы,функции, и символы
Слабая Связь
предположим, что в Xcode вы установили цель развертывания (минимальная требуемая версия) на iOS6, а целевой SDK (максимально допустимая версия) на iOS7. Во время компиляции, компилятор будет слабо связать любые интерфейсы, которые были введены в iOS7 пока сильно связывая более ранние интерфейсы. Это позволит вашему приложению продолжать работать на iOS6, но по-прежнему использовать новые функции, когда они доступны.
другие ответы здесь тоже правильные, но я считаю, что следующие шаги будут самыми легкими:
просто загрузите Xcode 4.6.3 из ссылки центра разработки, в которой говорится: "ищете более старую версию 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/наконец, перезапустите Xcode, и все готово.
мое приложение было легко переведено на Xcode 5, потому что оно все еще может строить с исходной целью развертывания iOS, которую вы установили в проекте (5.1 в моем случае). Если новый SDK не вызывает какой-то непреодолимой проблемы, то почему бы не построить с его помощью? Конечно, есть много улучшений под капотом.
например, я предпочитаю использовать Xcode 5 вместо Xcode 4.6.3. Зачем? Я получу намного больше времени автономной работы, потому что прокрутка пользовательского интерфейса текстовых/кодовых областей в Xcode 5 больше не выполняется жует весь поток процессора.
связывание 6.1 SDK в Xcode 5, как описано в других ответах, - это один шаг. Однако это все еще не решает проблему, что при запуске на iOS 7 берутся новые элементы пользовательского интерфейса, контроллеры просмотра делаются полноразмерными и т. д.
как описано в ответ также необходимо переключить пользовательский интерфейс в устаревший режим на iOS 7:
[[NSUserDefaults standardUserDefaults] setBool:YES forKey:@"UIUseLegacyUI"]; [[NSUserDefaults standardUserDefaults] synchronize];осторожно: это недокументированный ключ и не рекомендуется для сборки App Store!
кроме того, по моему опыту во время тестирования на устройстве я обнаружил, что он работает только во второй раз, когда я запускаю приложение, хотя я запускаю код довольно рано при запуске приложения, в
+[AppDelegate initialize]. Также есть тонкие различия в версии, построенной с использованием Xcode 4.6. Например, прозрачные панели навигации ведут себя по-разному (в результате чего становится полный размер).однако, поскольку Xcode 4.6.3 падает на Mavericks (по крайней мере для меня, см. rdar://15318883), это по крайней мере решение продолжить с помощью Xcode 5 для отладки.
Я загрузил XCode 4 и взял iOS 6.1 SDK из него в XCode 5, как описано в других ответах. Затем я также установил iOS 6.1 Simulator (он был доступен в настройках). Я также переключил базовый SDK на iOS 6.1 в настройках проекта.
после всех этих манипуляций проект с 6.1 base sdk работает в режиме comp ability в iOS 7 Simulator.
с 1 февраля Apple откажется от приложения, построенного только для iOS6 или ниже. Вот и официальный сообщении от Apple. Лучше начать строить для iOS7.
чтобы уточнить мое заявление: Если вы создадите для iOS6 или ниже, apple отклонит ваше приложение. Если вы строите для iOS7 и ниже все в порядке, это означает:
- вы должны использовать xcode5
- вы должны развернуть на iOS7 по крайней мере.
содержание Яблока электронная почта довольно ясно у меня
"убедитесь, что ваши приложения работают с инновационными технологиями в iOS 7. Начиная с 1 февраля новые приложения и обновления приложений, представленных в магазин приложений должен быть построен с помощью Xcode 5 и iOS 7 SDK."
в настоящее время у меня установлен Xcode 4.6.3 и 5.0. Я использовал следующий скрипт bash для ссылки 5.0 на SDK в старой версии:
platforms_path="/Contents/Developer/Platforms"; if [ -d $platforms_path ]; then for platform in `ls $platforms_path` do sudo ln -sf $platforms_path/$platform/Developer/SDKs/* $(xcode-select --print-path)/Platforms/$platform/Developer/SDKs; done; fi;вам просто нужно поставить его с пути .приложение:
./xcode.sh /Applications/Xcode-463.app











Comments