Подтвердить что ты не робот

Xcode 8 со старым базовым SDK

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

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

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

4b9b3361

Ответ 1

Начиная с Xcode 7.3, помимо копирования в SDK, вы также должны отредактировать определенный файл Info.plist как описано здесь для macOS в сообщении, с помощью agx. Похоже, есть аналогичный файл для iOS,

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

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

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

Ответ 2

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

Чтобы работать над этим проектом, я открываю его как в старшем Xcode, который может построить его с требуемым SDK, так и в недавнем Xcode. Я положил старое окно Xcode в фоновом режиме и выполняю свою работу в недавнем Xcode. Когда я готов проверить изменения, я делаю Файл > Сохранить все (⌥⌘S), затем переключитесь на старый Xcode и Build ( ⌘B). Когда сборка выполнена, я вернусь к недавнему Xcode и Product > Perform Action > Run without Building ( ^ > R). Поскольку формат файла dSYM не изменился, точки останова работают должным образом.

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

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

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

Ответ 3

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