Xcode 5 имеет панель настроек, которая позволяет загружать симулятор iPhone 6.1, однако я не могу найти место, где он позволяет загружать iOS 6 SDK, поэтому невозможно установить активный SDK для iOS 6 при разработке с Xcode 5 Есть ли обходной путь, который позволит Xcode 5 установить iOS 6 SDK?
РЕДАКТИРОВАТЬ:
Обходных путей больше не нужно, теперь, когда Xcode 5 обычно доступен и позволяет загружать предыдущие версии SDK.
Ответы:
РЕДАКТИРОВАТЬ: Начиная с 1 февраля 2014 года, Apple больше не будет принимать приложения до iOS7 для отправки в App Store. Таким образом, хотя эта техника все еще работает, она не будет полезна для большинства читателей.
Да, это нормально. Я все еще строю с iOS 4.3 для одного проекта (прошло некоторое время с тех пор, как мы обновились; но они все еще приняли его после выхода iOS 6), и в настоящее время я создаю 10.5 приложений с Xcode 5.
См. Как указать Xcode на старый SDK, чтобы его можно было использовать в качестве «Базового SDK»? для деталей о том, как настроить это. Вы можете использовать мой fix-xcode скрипт чтобы связывать все для вас каждый раз, когда вы обновляетесь.
Единственный прием - получить старые SDK. Если у вас их нет, вам обычно нужно скачать старые версии Xcode (все еще доступные на developer.apple.com ), открыть пакет установщика и поискать нужный вам SDK.
SDK можно найти в пакете установщика по адресу:
источник
Я также запускал ту же проблему, когда я обновил до xcode 5, он удалил старый SDK. Но я взял копию старого SDK с другого компьютера, которую вы можете скачать по следующей ссылке.
http://www.4shared.com/zip/NlPgsxz6/iPhoneOS61sdk.html
(тестовый аккаунт www.4shared.com test@yopmail.com/test)
Есть 2 способа работы с.
1) Разархивируйте и вставьте эту папку в /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs и перезапустите xcode.
Но это может быть снова удалено Xcode, если вы обновите xcode.
2) Другой способ - разархивировать и вставить туда, куда вы хотите, и перейти в /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs и создать здесь символическую ссылку, так что SDK останется прежним, даже если Вы обновляете Xcode.
Еще одно изменение, которое я сделал, Настройка сборки> Архитектура> стандартная (не 64), поэтому перечислите все версии Deployment Target
Не нужно загружать zip, если вы хотите изменить только цель развертывания.
Вот несколько скриншотов.
источник
Да, я только что решил проблему сегодня.
Затем вы можете выбрать SDK, как показано ниже:
Надеюсь, это поможет вам.
источник
Найдите и скачайте старый SDK. Старые SDK находятся здесь .
Я скопировал каталог xcode.app как Xcode_4.6.3.app.
Теперь вы можете тестировать и отлаживать в обеих версиях xcode. Вы должны запустить их из соответствующих папок или создать ярлыки на рабочем столе. При сборке из командной строки укажите параметр
iPhoneOS6.1
вместоiPhoneOS7.0
Это отлично работает для меня в Xcode5 и iOS.
Перейдите в каталог Xcode5 SDK. Обычно он расположен по адресу:
Добавьте символическую ссылку на старый SDK следующим образом:
Или, точнее, из любой точки командной строки,
источник
Вы можете скачать старый SDK и установить его в
Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/
папки. Выход из системы + вход в систему только для того, чтобы изменения вступили в силу, и вы должны увидеть более старый SDK в новом XCode
источник
Просто добавьте, что вы можете загрузить старые версии симулятора с помощью самого Xcode 5 - просто перейдите к настройкам, и вы найдете их в разделе «Загрузки»:
источник
Откройте окно терминала
Вам будет предложено ввести пароль, так как вы находитесь в системной папке
источник
Просто для меня самое простое решение:
Чтобы протестировать приложение в 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
содержат разные sdks. (Замените Xcode.app на правильный номер) скопируйте предыдущие SDK в/Applications/Xcode 3.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs
Вот моя папка после того, как я ее скопировал.
Теперь перезапустите xCode, и вы можете установить предыдущие версии SDK в качестве базовой SDK.
Почему это не нужно
Ссылаясь на документацию Apple
Чтобы использовать определенный SDK для проекта XCode, сделайте два выбора в настройках сборки вашего проекта.
Выберите цель развертывания .
Это определяет самую раннюю версию ОС, на которой может работать ваше программное обеспечение.
Выберите базовый SDK
Ваше программное обеспечение может использовать функции, доступные в версиях ОС вплоть до той, которая соответствует базовому SDK. По умолчанию XCode устанавливает это к самой новой ОС, поддерживаемой XCode.
Правило: Используйте последний как базовый SDK и установите цель развертывания для приложения минимальной версии, которое должно запускаться
Например, вы можете использовать iOS 7 в качестве базовой SDK и установить iOS 6 в качестве цели развертывания. Запустите симулятор iOS 6, чтобы проверить, как он работает в iOS 6. Установите симулятор, если он недоступен со списком симуляторов.
Дополнительно Вы можете безоговорочно использовать функции до 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 поверх:
Наконец, перезапустите Xcode, и все готово.
источник
Мое приложение было без проблем переведено на Xcode 5, потому что оно все еще может собираться с оригинальной целью развертывания iOS, которую вы установили в проекте (5.1 в моем случае). Если новый SDK не вызывает непреодолимой проблемы, то почему бы не собрать его? Наверняка под капотом много улучшений.
Например, я предпочитаю использовать Xcode 5 вместо Xcode 4.6.3. Зачем? Я получу гораздо больше времени работы от батареи, потому что прокрутка пользовательского интерфейса областей текста / кода в Xcode 5 больше не жует весь поток ЦП.
источник
Соединение 6.1 SDK в Xcode 5, как описано в других ответах, является одним шагом. Однако это по-прежнему не решает проблему использования новых элементов пользовательского интерфейса в iOS 7, контроллеров представления в натуральную величину и т. Д.
Как описано в этом ответе, также необходимо переключить пользовательский интерфейс в устаревший режим на iOS 7:
Осторожно: это недокументированный ключ, который не рекомендуется для сборок в 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 (он был доступен в настройках). Я также переключил Base SDK на iOS 6.1 в настройках проекта.
После всех этих манипуляций проект с 6.1 base sdk запускается в режиме совместимости в iOS 7 Simulator.
источник
С 1 февраля Apple отклонит приложение, созданное только для iOS6 или ниже. Здесь также официальное сообщение от Apple. Лучше начать сборку для iOS7.
Чтобы уточнить мое утверждение: Если вы собираете iOS6 или ниже, Apple отклонит ваше приложение. Если вы собираете для iOS7 и ниже все в порядке, это означает:
Содержание электронной почты Apple довольно ясно для меня
источник
В настоящее время у меня установлены Xcode 4.6.3 и 5.0. Я использовал следующий скрипт bash, чтобы связать 5.0 с SDK в старой версии:
Вам просто нужно указать путь к .app:
источник
Xcode5-DP6
которой я смог восстановить 7.0.x, но это хорошее напоминание для резервного копирования каталогов SDK (или полного переименования приложения) перед обновлением или установкой последней версии XCode.