1

这可能是一个时间敏感的问题(现在是 06/2019,我希望 VS2019 在测试版结束时更新以支持 Xcode11)但我想继续使用 Xcode 10.2 和 Visual Studio 2019 的相关工具Mac 同时探索 Xcode 11b 的一些新功能。运行 Xcode 11b 会导致安装相关的命令行工具,并且 10.2 模拟器停止工作。同样,遵循此处概述的解决方法会导致 11b 模拟器无法启动。

有没有办法让 Visual Studio 和 Xcode 11b 同时运行?

4

2 回答 2

0

对于那些想要基于 GUI 的解决方案的人:

https://docs.microsoft.com/en-us/xamarin/ios/troubleshooting/questions/ios-sdk。请参阅此链接以了解如何设置/指向 iOS SDK/您喜欢在 Visual Studio for Windows 和 Mac 中使用的另一个 xCode 版本。

这可以在 Visual Studio 中设置如下

Visual Studio 工具 -> 选项 -> Xamarin -> iOS 设置

Visual Studio for Mac -> 首选项 -> 项目 -> SDK 位置 -> iOS

在此处输入图像描述

于 2020-11-10T12:10:06.057 回答
0

至少可以在它们之间切换,尽管这有点像蛮力方法。以下脚本可能有一个轻触版本,这不是 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 的 /my 默认位置。

运行需要几分钟。

#!/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."


于 2019-06-14T13:23:59.550 回答