Используйте Xcode 10.2.x и Xcode 11b вместе с Visual Studio 2019 Mac / Xamarin - PullRequest
0 голосов
/ 14 июня 2019

Вероятно, это чувствительная ко времени проблема (сейчас 06/2019, и я ожидаю, что VS2019 будет обновлен для поддержки Xcode11, когда он выйдет из бета-версии), но я бы хотел продолжить использовать Xcode 10.2 и соответствующие инструменты с VisualStudio 2019 для Mac, в то же время исследуя некоторые из новых функций Xcode 11b.Запуск Xcode 11b вызывает установку соответствующих инструментов командной строки и прекращение работы симулятора (ов) 10.2.Точно так же, следуя обходному пути, описанному здесь , происходит сбой запуска симулятора 11b.

Есть ли способ запустить одновременно и Visual Studio, и Xcode 11b?

1 Ответ

0 голосов
/ 14 июня 2019

Возможно, по крайней мере, переключаться между ними, хотя это немного грубый подход.Может быть более легкая версия следующего скрипта, и это не упражнение в 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."


...