Используйте Xcode 7 с iOS 10

138

Я хочу использовать Xcode 7 с iOS 10.

Насколько я понимаю, для работы с бета-версией iOS 10 требуется бета-версия Xcode 8, поэтому мне следует обновить свой Xcode. Однако мой код не может быть построен новым компилятором, поэтому я хочу остаться с Xcode 7.

Как я могу этого добиться?

Fanruten
источник
2
Пожалуйста, подумайте о том, чтобы сделать ваш вопрос минимальным, полным и поддающимся проверке
Катя Хэндлер
4
@ParagBafna: но Objective-c и Swift - это языки программирования! Это делает Xcode инструментом, используемым в первую очередь для программирования . Этот вопрос никогда не должен был закрываться.
tharkay
Владимир,

Ответы:

197

Вам нужно использовать DeveloperDiskImage из Xcode 8 Beta. Для этого извлеките приложение Xcode 8 Beta и скопируйте DeveloperDiskImage для iOS 10 в папку Xcode.

Предположим, вы извлекаете Xcode в Downloads / Xcode-beta.app

cp -r /Users/fanruten/Downloads/Xcode-beta.app/Contents/Developer/Platforms/iPhoneOS.platform/DeviceSupport/10.0\ \(14A345\) /Applications/Xcode_7.2.1.app/Contents/Developer/Platforms/iPhoneOS.platform/DeviceSupport

После копирования DeveloperDiskImage вы должны запустить Xcode и подключить устройство iOS к вашему Mac.

Изменить:
при стандартной установке Xcode можно создать программную ссылку:

sudo ln -s \
/Applications/Xcode-beta.app/Contents/Developer/Platforms/iPhoneOS.platform/DeviceSupport/10.0\ \(14A5309d\) \
/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/DeviceSupport/10.0
Fanruten
источник
Если это не работает для вас, то это просто потому, что нет Xcode_7.2.1.app, это просто Xcode.app, спасибо за это!
Markus
4
Это не работает с iOS 10 beta 2. Это ошибка kAMDMobileImageMounterDeviceLocked. Пока не нашел обходного пути.
Джонатан Митчем
2
У меня работает с beta3
mbo42
1
Кому-нибудь повезло с бета 6?
mlevi
4
Если этот ответ не работает для вас, убедитесь, что конечная строка вашей папки поддержки устройств, например. (14A5309d) соответствует версии на вашем устройстве iOS. Он обозначает бета-семя. Если это не так, обновите свой Xcode, чтобы он совпадал с исходным кодом вашего устройства iOS, а затем следуйте приведенному выше ответу.
Hunter Monk
70

Вы можете использовать любой SDK в более старой сборке Xcode, просто скопировав и вставив папку нужной вам ОС. Также очевидно, что у вас не может быть двух приложений с одинаковым именем, поэтому просто переименуйте их в Xcode 7 и Xcode 8.

щелкните правой кнопкой мыши / щелкните значок приложения Xcode 8, чтобы отобразить содержимое пакета, перейдите в это место и скопируйте папку iOS 10.0 или WatchOS 3.0 и т. д.

/Applications/Xcode8.app/Contents/Developer/Platforms/iPhoneOS.platform/DeviceSupport /Applications/Xcode8.app/Contents/Developer/Platforms/WatchOS.platform/DeviceSupport

введите описание изображения здесь

Затем перейдите в то же место в Xcode 7 и вставьте папку.

/Applications/Xcode7.app/Contents/Developer/Platforms/iPhoneOS.platform/DeviceSupport /Applications/Xcode7.app/Contents/Developer/Platforms/WatchOS.platform/DeviceSupport

введите описание изображения здесь

Перезапустите Xcode 7. Вам придется немного подождать, пока Xcode восстановит символы и т. Д.

Эдисон
источник
2
Кстати, обработка файлов символов может занять несколько минут. Я использую последний и лучший MacBook Pro, и это требует времени. Мне пришлось отключить телефон после того, как я впервые подключил его к b / c. Xcode по ошибке сказал, что он заблокирован. После этого он работал отлично, но обработка файлов заняла некоторое время.
kbpontius
Ага, упомянул об этом в своем посте. Ура.
Эдисон
Нам нужна поддержка iOS 6 и 7, поэтому я использовал
описанную
Хороший ответ @tymac - я выполнил ваши шаги, но не вижу iOS 10 в цели развертывания. Любая идея?
Tal Zion
@TalZion Вы не видите версию в раскрывающемся списке, потому что вы должны убедиться, что используемая вами версия Xcode совместима с версией на вашем устройстве. Это проблема с образом SIM-диска.
Эдисон
25

Для меня ни одно из приведенных выше предложений не сработало.

Вместо этого я перешел в это место (нажмите CMD + SHIFT + K, чтобы вставить путь ниже) (через искатель)

/Applications/Xcode-beta.app/Contents/Developer/Platforms/iPhoneOS.platform/DeviceSupport

И скопировал 10.0(14A5339a)папку, в которой находится образ диска разработчика. Затем я вставил его в

/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/DeviceSupport

РЕДАКТИРОВАТЬ: Я использую Xcode7 (версия 7.3.1-7D1014), публичная бета-версия iOS 10 6 (14A5345a) - это выпущено 19 августа 2016 г.

rak appdev
источник
Ницца! Какие версии Xcode вы используете? Похоже, вы используете и Xcode, и бета-версию Xcode - не могли бы вы добавить версию для обоих?
Cullub
1
это решение сработало для меня! Мне пришлось вернуться к xcode 7.3.1, чтобы работать над старым проектом, застрявшим на swift 2.x <2.3 (из-за зависимостей сторонних библиотек, которые не совместимы с более высокими версиями Swift), и теперь я могу собрать свой iphone на iOS 10.2, спасибо !!
теплица
2

Хотя копирование папки, содержащей образ диска, по-прежнему является лучшим способом, у меня не было времени загрузить новейший Xcode, чтобы получить папку с образами диска, поэтому я в основном заархивировал приложение и экспортировал его, используя вариант развертывания сохранения для разработки затем установил его на тестовое устройство с помощью приложения iTunes.

В моем случае я использовал Xcode 8.0, желая построить на устройстве iOS 10.2.1.

введите описание изображения здесь

Фуцюань
источник
1

Паскаль && Фанрутен правы.

протестировано 12 августа, Xcode версии 7.3.1 (7D1014) И iOS 10.0 (14A5309d) на iPhone6 ​​Plus.

Я сделал символическую ссылку, как было предложено (пути немного другие ... см. Ниже.), Но работает со ссылкой на Xcode Version 8.0 beta 4 (8S188o).

только для полноты:

Бета 4

sudo ln -s /Applications/Xcode-beta.app/Contents/Developer/Platforms/iPhoneOS.platform/DeviceSupport/10.0\ \(14A5322e\)/  /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/DeviceSupport/10.0

Бета 5

sudo ln -s /Applications/Xcode-beta.app/Contents/Developer/Platforms/iPhoneOS.platform/DeviceSupport/10.0\ \(14A5339a\)/  /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/DeviceSupport/10.0
Ingconti
источник
Для символической ссылки из XCode 8 Beta 5 в Xcode 7:sudo ln -s /Applications/Xcode-beta.app/Contents/Developer/Platforms/iPhoneOS.platform/DeviceSupport/10.0\ \(14A5335a\)/ /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/DeviceSupport/10.0
cdf1982
0

Ответ Тимака почти сработал для меня. Вместо копирования и вставки я открыл два окна Finder, а затем перетащил папку iOS 10 в папку Xcode 7. Как только он будет в Xcode 7, откройте папку и убедитесь, что там есть файл DMG.

Ранее я перетащил копию папки поддержки устройств iOS 10 на свой рабочий стол, а затем скопировал ее в папку Xcode 7. Кажется, это распаковывает файл dmg, поэтому Xcode 7 все еще жаловался. В папке должен быть dmg-файл.

Д. Ротшильд
источник
0

Одно предупреждение. Я попытался использовать XCode 7.3.1 с изображениями ios 10 из XCode 8.1 для проекта Cordova (он работает), но возникли проблемы с разрешениями на push-уведомления (разные настройки для ios 8/9/10). Не уверен, но мне кажется, что в 7.3.1 отсутствуют некоторые директивы компилятора.

3176243
источник
0

Вот он для XCode 9 и iOS 11 Beta 1:

sudo ln -s \
/Applications/Xcode-beta.app/Contents/Developer/Platforms/iPhoneOS.platform/DeviceSupport/11.0\ \(15A5278f\) \
/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/DeviceSupport/11.0
Брайан
источник
Это действительно работает для вас? Я не могу добавить симулятор iOS 11 в Xcode 8.
Ортвин Генц,
@OrtwinGentz ​​Посмотрите, сможете ли вы запустить симулятор в Xcode 9 - если он запустится, вы сможете закрыть Xcode 9 и отладить свое приложение на симуляторе из XC 8.
Брайан
Конечно, я могу запустить Симулятор в Xcode 9. Но я не могу построить с Xcode 8 (против iOS 10 SDK) и отладить на симуляторе iOS 11.
Ortwin
будет ли этот метод работать на устройстве Xcode 7.3 и iOS 11?
DHEERAJ
-1

мои два цента за бета-версию Xcode версии 11 против Xcode 10 после wwdc2019:

ln -s /Applications/Xcode-beta.app/Contents/Developer/Platforms/iPhoneOS.platform/DeviceSupport/13.0 /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/DeviceSupport/13.0

поэтому я могу использовать свой iPhone с бета-версией iOS 13 в Xcode 10.

после ln -s, пожалуйста, перезапустите Xcode

Ingconti
источник