Как установить и использовать несколько версий инструментов командной строки Xcode - PullRequest
0 голосов
/ 15 февраля 2019

У меня есть Macbook pro, работающий под управлением ОС Mojave с Xcode 10.1, и инструменты командной строки установлены в /Application/Xcode.app/Contents/Developer.Для проекта, который у меня есть, xcodebuild вызывается из командной строки.

Я хочу запустить инструмент статического анализа для проекта (инструмент вызывает xcodebuild), который не поддерживает Xcode 10.1 или версии компилятора Swift и Clang, поставляемые с ним.Инструмент в настоящее время поддерживает только Xcode 9.2.Я скачал Xcode 9.2, извлек и переименовал Xcode.app в Xcode9_2.app и переместил его в папку «Приложения».

Я предполагаю, что xcodebuild установлен как часть установки утилит командной строки и что мне нужно установитьутилиты командной строки для Xcode 9.2.Однако, когда я пытаюсь установить их, я получаю сообщение «Инструменты командной строки (macOS High Sierra версия 10.13) не могут быть установлены на этот диск. Версия macOS слишком новая».У меня также есть опасение, что старый Xcodebuild может заменить новый, так как он находится в / usr / bin.

Вызов xcodebuild выглядит следующим образом:

xcodebuild -workspace ‘MyApp/MyApp.xcworkspace' -scheme ‘MyApp’ -configuration 'Release' -archivePath MyApp.xcarchive archive

Итак, мой вопрос:

1) Является ли xcodebuild частью инструментов командной строки?

2) Если это как установить различные версии инструментов командной строки?Я предполагаю, что после их установки я могу выбрать что-то вроде:

sudo xcode-select -s /Applications/Xcode9_2.app/Contents/Developer

Но снова я вижусообщение, препятствующее установке инструментов командной строки Xcode 9.2.

Я также видел этот другой SO post , но я не думаю, что шаг удаления карантина применим, и я не думаю, чтоон решает проблему, связанную с тем, что xcodebuild находится в \ usr \ bin.Также я попытался переименовать Xcode.app версии 10.1, затем переименовать Xcode9_2.app в Xcode.app и запустить в терминале xcode-select --install, но он просто говорит: «Инструменты командной строки уже установлены ...»

...