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 бета-версии смешанных симуляторов в списке

Другие вопросы по тегам