CI моей команды использует более старый Xcode, чем последняя версия. В результате, если я хочу использовать новейший Xcode, мне нужно установить Xcode 11.3 и Xcode 11.4.1. Я был iOS разработчиком в течение долгого времени, поэтому мне удобно переключаться между X-кодами, и я знаю, что мне нужно обязательно изменить версию CommandLineTools и поменять зависимости в Карфагене, созданные с использованием любого Xcode I ' м переключается на. Все в порядке.
Традиционно при переключении между кодами X я удаляю DerivedData, однако приложение моей команды настолько велико, что для чистой сборки требуется 7 минут. Я не хотел бы нести этот штраф, если все, что я сделал, это переключил X-коды и затем переключился обратно.
Так вот мой вопрос: что произойдет с моими DerivedData, если я сделаю следующее:
- успешно скомпилировать мое приложение и его зависимости в Карфагене на Xcode 11.4.1
- выйти из Xcode 11.4.1, открыть Xcode 11.3, изменить CommandLineTools на Xcode 11.3
mv Carthage ~/Desktop/Xcode11-4-Carthage/
- открыть мой проект и перестроить мои приложения и зависимости Carthage на 11.3
- выйти из Xcode 11.3, открыть Xcode 11.4.1, изменить CommandLineTools на Xcode 11.4.1
mv Carthage ~/Desktop/Xcode11-3-Carthage/
mv ~/Desktop/Xcode-11-4-Carthage/ Carthage/
- откройте мой проект и перестройте мое приложение на 11.4.1
На шаге 8 все ли DerivedData из шага 1 останутся без изменений , в результате чего ничего не нужно строить на самом деле? Или шаг 4 уничтожит всю работу, проделанную шагом 1?
Если ответ на последний вопрос «да», то есть ли способ заставить каждую версию XCode использовать отдельную папку DerivedData, например «DerivedData_XXXXXX», где XXXXXX - это идентификатор сборки того кода, который его построил в Xcode?
Более того, если после этого я вернусь к 11.4.1 и соберу снова, будет ли все предыдущее содержимое DerivedData из лат. 11.4.1 сборка все еще там, или я буду подвергаться полной перестройке?
Я просто ищу способ сэкономить время при переключении между версиями Xcode.