2016-06-15 9 views
22

Я сталкиваюсь с проблемами совместимости для некоторых внешних фреймворков, которые я использую в своем проекте. Есть ли способ изменить базовый SDK на Xcode 8? В настоящее время в настройках проекта отображается только последний SDK.Xcode 8 со старым базовым SDK

Я попытался скопировать старую SDK от другой версии Xcode, чтобы здесь, но это не сработало:

/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/

ответ

29

Начиная с Xcode 7.3, помимо копирования в SDK, вы также должны отредактировать определенный файл Info.plist, as described here for macOS in the post by agx. Похоже, что есть подобный файл для прошивки, в

Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Info.plist 

Попробуйте изменить значение из MinimumSDKVersion там от 10,0 до любой версии SDK вы хотите.

Я не пробовал это с iOS, но, используя это обходное решение, я смог построить цель macOS с помощью macOS 10.6, используя Xcode 8.0 (8A218a) («GM»).

+1

Я могу подтвердить это для iOS. Имейте в виду, если вы хотите построить для симулятора, вам нужно будет выполнить те же действия для 'iPhoneSimulator.platform'. – dcow

+1

Это помогает мне построить версию для iOS 9.3 вместо iOS 10 с Xcode 8. Спасибо! – jfmg

+0

Спасибо, это действительно помогает. Интересно, однако, при этом вы не можете установить цель развертывания на вкладке info на 10.1 из настоящего, поэтому вам нужно ввести его –

0

Вам просто нужно изменить настройки «Цель развертывания». В основном вы используете последний доступный SDK в качестве базового SDK, но выбираете целевую версию OS X. Конечно, это зависит от того, почему вы хотите использовать старый SDK?

1

Мой первоначальный ответ, хотя он работал с Xcode 8 по какой-то странной причине, которая не стоит объяснять, больше не работает с Xcode 9 в старом проекте конкретного клиента. Поэтому я использовал альтернативный рабочий процесс, который действительно не так уж плох.

Для работы над этим проектом я открываю его в как старшем Xcode, который может построить его с помощью требуемого SDK, так и в недавнем Xcode. Я положил старое окно Xcode в фоновом режиме и выполняю свою работу в недавнем Xcode. Когда я готов протестировать изменения, я делаю файл>Сохранить все (⌥⌘S), а затем переключиться на старый Xcode и построить (⌘B). Когда сборка будет сделано, я переключаюсь обратно к недавнему Xcode и продукта>исполняющее действие>Запуск без создания (^⌘R). Поскольку формат файла dSYM не изменился, точки останова работают должным образом.

Преимущества, которые не Взлом Xcode не требуется, и единственное, что мне нужно помнить о старом Xcode (Xcode 3 в моем случае), к счастью: ⌘B.

Одно маленькое предупреждение: В Цель данного конкретного проекта, в Строительства Настройки, он имеет обычай создавать продукты Путь. Это типично для приложений Mac, которые были созданы много лет назад. Чтобы гарантировать, что оба ваших Xcodes работают с одним и тем же продуктом, если ваш старый и недавний Xcodes ограничивают версию, которая изменила стандартный путь Build Products Path, может потребоваться установить Путь готовых продуктов.

Возможно, рабочий процесс можно сделать еще проще, написав инструменты командной строки xcodebuild и xcode-select, но это достаточно хорошо. С объявлением Apple в WWDC этого года о поддержке 32-разрядных приложений Mac, уходящих в течение следующих двух лет, у моего клиента в любом случае есть жесткие решения.

 Смежные вопросы

  • Нет связанных вопросов^_^