Возможно, по крайней мере, переключаться между ними, хотя это немного грубый подход.Может быть более легкая версия следующего скрипта, и это не упражнение в Bash-foo.Как обычно, сохраните его где-нибудь (я буду использовать switchXcode.sh
, ниже) и сделайте исполняемый файл.
Выйдите из любого Xcode / VS2019 и запустите его с:
./switchXcode.sh [--useold|--usenew] [--old </PATH/TO/OLD/XCODE.app>] [--new <PATH/TO/NEW/XCODE.app>]
Где --useold
/--usenew
должно быть очевидным, а --old
и --new
позволяют вам переопределить / мои местоположения по умолчанию для XCode.
Для запуска требуется несколько минут.
#!/bin/bash
# Script to swap between Xcode production and beta versions
# Ask for root privilege
[ "$UID" -eq 0 ] || exec sudo "$0" "$@"
# Adjust to suit, or override with args
OLD_XCODE=/Applications/Xcode.app
NEW_XCODE=/Applications/Xcode-beta.app
USE=NONE
# Parse command line args
POSITIONAL=()
while [[ $# -gt 0 ]]
do
key="$1"
case $key in
--old)
OLD_XCODE="$2"
shift; shift
;;
--new)
NEW_XCODE="$2"
shift; shift
;;
--useold)
USE=OLD
shift
;;
--usenew)
USE=NEW
shift
;;
*)
echo "Unknown argument"
exit 1
;;
esac
done
# Validate inputs
[ ! -d "$OLD_XCODE" ] && echo "'old' Xcode directory '$OLD_XCODE' does not exist; exiting." && exit 1
[ ! -d "$NEW_XCODE" ] && echo "'new' Xcode directory '$NEW_XCODE' does not exist; exiting." && exit 1
# Switch to correct Xcode
case "$USE" in
"OLD")
echo "Switching to 'old' Xcode ($OLD_XCODE)"
sudo xcode-select -s $NEW_XCODE/Contents/Developer/ &&\
sudo $NEW_XCODE/Contents/Developer/usr/bin/xcodebuild -runFirstLaunch &&\
sudo rm -Rf /Library/Developer/PrivateFrameworks/CoreSimulator.framework/Versions/* &&\
sudo xcode-select -s $OLD_XCODE/Contents/Developer/ &&\
sudo $( for pkg in $OLD_XCODE/Contents/Resources/Packages/*.pkg; do sudo installer -pkg "$pkg" -target /; done ) &&\
sudo $OLD_XCODE/Contents/Developer/usr/bin/xcodebuild -runFirstLaunch
;;
"NEW")
echo "Switching to 'new' Xcode ($NEW_XCODE)"
sudo xcode-select -s $OLD_XCODE/Contents/Developer/ &&\
sudo $OLD_XCODE/Contents/Developer/usr/bin/xcodebuild -runFirstLaunch &&\
sudo rm -Rf /Library/Developer/PrivateFrameworks/CoreSimulator.framework/Versions/* &&\
sudo xcode-select -s $NEW_XCODE/Contents/Developer/ &&\
sudo $( for pkg in $NEW_XCODE/Contents/Resources/Packages/*.pkg; do sudo installer -pkg "$pkg" -target /; done ) &&\
sudo $NEW_XCODE/Contents/Developer/usr/bin/xcodebuild -runFirstLaunch
;;
*)
echo "NO XCODE SPECIFIED"
exit 1
;;
esac
echo "Done."