Xcode 9: как установить ios 10 sdk
Учитывая тот факт, что в настоящее время Xcode 9 является бета-версией, и основной интерес сегодня - получение знаний о iOS 11, вопрос по общему признанию странный...
Есть ли способ нацелить iOS 10 в качестве базового sdk при работе в бета-версии Xcode 9? Нужно ли Apple упаковать SDK для Xcode 9 так же, как для предыдущих ОС в Xc8?
Зачем это нужно?
а) Первое, что приходит на ум, - это использовать новые замечательные инструменты рефакторинга Xcode 9 в проекте, который включает в себя код, который требует изменений с iOS 10 на 11, но в настоящее время должен работать на iOS 10.
б) ради экспериментов..
2 ответа
Используя это и это, я смог скомпилировать против SDK10.3, используя Xcode 9 beta 4. Это возможно с МНОГИМИ предостережениями.
Предупреждение 1: Кажется, графический интерфейс Xcode не способен обнаруживать несколько iPhone SDK одновременно. Таким образом, вы не можете переключаться между 10,3 и 11,0 в качестве базового SDK.
Предупреждение 2: быстрый компилятор, который поставляется с Xcode 9, не поддерживает таргетинг на SDK iPhone Simulator ниже 11.0. Вы столкнетесь с этой ошибкой, если попытаетесь:
ошибка: Swift не поддерживает SDK "iPhoneSimulator10.3.sdk"
Предостережение 3: Даже если вы сделаете все это, вам все равно не будет разрешено отправить приложение с намерением выпустить его до запуска iOS 11. Единственное преимущество использования старых базовых SDK - это использование определенных особых обстоятельств на платформе iOS. Один примечательный пример - фоновые VoIP-сокеты, и есть несколько других примеров, подобных разбросанным по истории iOS.
Устаревшая архитектура VoIP была заменена новой архитектурой на основе PushKit в iOS 8. Затем она была официально объявлена устаревшей с iOS 9 SDK. В iOS 10 это доступно только как мера совместимости; он продолжает работать (как никогда), если ваше приложение связано со старым SDK, но отключается, если вы связываете его с iOS 10 SDK.
Предостережение 4: Вы можете сделать это только с чисто объективным проектом C. Кажется, есть некоторая несовместимость между 10.3 SDK и версией компилятора swift, который поставляется с Xcode 9. В частности, эта ошибка:
Если вы все еще заинтересованы
... вот как это сделать.
Шаг 1
Замените 11.0 SDK для Xcode 9 на 10.3 SDK для Xcode 8.3.3, заменив файлы здесь:
Xcode-beta.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs
с файлами отсюда:
Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs
Шаг 2
Изменить MinimumSDKVersion
значение от 11,0 до 10,3 в этом файле:
Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Info.plist
Xcode 9 beta 4 позволяет загружать и использовать все предыдущие симуляторы. Больше обходных путей не требуется, просто загрузите симулятор, нажав на пункт меню "Загрузить симуляторы", показанный на рисунке (последний пункт).
Снимок экрана: XCode 9 бета-версии смешанных симуляторов в списке