Можно ли установить 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.



enter image description here

747   15  

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, если вы только хотите изменить цель развертывания.

вот несколько скриншотов. enter image description hereenter image description here

Да, я только что решил эту проблему сегодня.

  1. найдите файл SDK, например iPhoneOS6.1.sdk, в вашем или вашего друга старый каталог Xcode.
  2. скопируйте и поместите его в каталог Xcode 5 : /Применения/Xcode.приложение / содержание / разработчик / платформы / iPhoneOS.платформа/разработчик/пакеты SDK.

enter image description here

затем вы можете выбрать SDK, как показано ниже:

enter image description here

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

найти и скачать старый 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-просто перейдите в настройки, и вы найдете их в разделе Загрузки:

enter image description here

  • Скачать 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 и вы увидите как Фнаф

просто для меня самое простое решение:

  1. найдите более старый 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 enter image description here
  2. просто скопируйте папку iPhoneOS6.X sdk и вставьте его в свой xcode.приложение
    • щелкните правой кнопкой мыши на вашем xcode.приложение в папке приложения.
    • перейдите в раздел содержимое / разработчик / платформы / iPhoneOS.платформа/разработчик/пакеты SDK/
    • просто вставить сюда.

enter image description here

  1. закройте приложение xcode и снова откройте его снова.

чтобы протестировать приложение в iOS 6 на вашем симуляторе: - Просто выберите прошивку iOS 6.0 в активной схеме. enter image description here

чтобы построить свое приложение в iOS 6, поэтому дизайн вашего приложения будет более старым дизайном на iPhone с iOS 7: - Выберите iOS6. 1 в Targets - Base SDK

enter image description here

просто обратите внимание: при изменении базового SDK в ваших целях iOS 7.0 больше не будет доступна для построения на симуляторе !

можете сделать это, но на самом деле не обязательно

как сделать

Джейсон Ли получил ответ. При установке xCode я предпочел сохранить Предыдущие установки, а не заменять их. Так что у меня есть эти в моей папке установки

enter image description here

Так /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs содержат различные пакеты SDK. (Замените В Xcode.приложение с правильным номером) скопируйте предыдущие SDK в

/Applications/Xcode 3.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs

вот моя папка после того, как я скопировал один.

enter image description here

теперь перезапустите xCode, и вы можете установить предыдущие версии SDK в качестве базового sdk.

почему не надо

Ссылаясь На Apple Documentaion

чтобы использовать определенный SDK для проекта Xcode, сделайте два выбора в настройках сборки вашего проекта.

  1. выберите цель развертывания.

    определяет самую раннюю версию ОС, на которой ваш программное обеспечение может работать.

  2. выберите базовый SDK

    ваше программное обеспечение может использовать функции, доступные в версиях ОС до и включая тот, который соответствует базовому SDK. По умолчанию в XCode это новейшая операционная система поддерживается в Xcode.

правило использует последнюю версию в качестве базового SDK и устанавливает цель развертывания в минимальную версию приложения, которое должно запускаться

например, вы можете использовать iOS 7 в качестве базового sdk и установить iOS 6 как цель развертывания. Запустите на iOS 6 simulator, чтобы проверить, как он работает на iOS 6. Установите симулятор, если он недоступен со списком симуляторов.

enter image description here

дополнительно вы можете безоговорочно использовать функции до iOS 6. И условно вы можете поддерживать новые функции iOS 7 для новых обновленных устройств при поддержке предыдущих версий.

Это можно сделать с помощью Слабо Связанные Классы,Слабо Связанные Методы,функции, и символы

https://developer.apple.com/library/ios/documentation/developertools/conceptual/cross_development/Using/using.html#//apple_ref/doc/uid/20002000-SW3

Слабая Связь

предположим, что в 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 и ниже все в порядке, это означает:

  1. вы должны использовать xcode5
  2. вы должны развернуть на 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

    Ничего не найдено.