如何在Mac OS Ventura中使用Xcode 13?

回答 2 浏览 4809 2022-10-25

我已经安装了最新版本的macOS(13)的Ventura,并希望有一个稳定版本的Xcode(如13.4.1)运行,但它说" The version of Xcode installed on this Mac is not compatible with macOS Ventura"。

有什么办法可以在Ventura上运行Xcode吗?

enter image description here

Hassan 提问于2022-10-25
2 个回答
#1楼 已采纳
得票数 21

Xcode 14是macOS Ventura所要求的。但是如果你想使用旧版本的Xcode(例如Xcode 13),你可以直接从finder或终端启动它。

要想在finder中打开,请导航到。

Applications Folder >找到Xcode App >右键点击应用程序,并点击Show Package Contents >打开Contents >打开MacOS >并启动Xcode

或者说

在终端中运行以下命令。

open /Applications/Xcode.app/Contents/MacOS/Xcode

Hassan 提问于2022-10-25
Hassan 修改于2022-10-26
如果使用命令行,你会得到错误。The application cannot be opened for an unexpected reason, error=Error Domain=NSOSStatusErrorDomain Code=-10664 "kLSIncompatibleApplicationVersionErr: The app is incompatible with the current OS" UserInfo={_LSLine=4087, _LSFunction=_LSOpenStuffCallLocal}只需杀死命令,然后再试一次,应该就可以了 !MoOx 2022-10-25
另外,你可能需要用xcode-select -s <your_xcode13.x_path>来设置命令行工具,因为Xcode > Preferences > Location不会在UI中显示降级的选项。henrique 2022-10-27
链接下载旧的Xcode版本,并在mac上的Downloads文件夹中的XCode zip文件上应用上述步骤。Pravalika 2022-11-05
但是,你不能导出应用程序。Abhishek Thapliyal 2022-11-08
我们能在Rosetta模式下打开它吗?我没有找到Rosetta模式。Jayeshkumar Sojitra 2022-11-09
#2楼
得票数 1

修复问题的单次运行的脚本

由于这个问题原则上与去年的问题相同,当时我们想在macOS Monterey上运行Xcode 12,所以值得查看去年关于同一问题的问题。在那里,我发现了这个伟大的答案,其中提出了一个脚本,只需要运行一次就可以解决这个问题(允许定期打开Xcode 13,例如通过双击)。该脚本的工作原理是将旧的Xcode 13的构建版本改为新的Xcode 14的构建版本,从而欺骗了操作系统。

在运行脚本之前,你需要OLD_XCODENEW_XCODE的变量改为正确的路径

#!/bin/sh

set -euo pipefail

# Set the paths to your Old/New Xcodes
OLD_XCODE="/Applications/Xcode-13.4.1.app"
NEW_XCODE="/Applications/Xcode-14.1.0.app" # To get build number

# Get New Xcode build number
OLD_XCODE_BUILD=$(/usr/libexec/PlistBuddy -c "Print CFBundleVersion" ${OLD_XCODE}/Contents/Info.plist)
NEW_XCODE_BUILD=$(/usr/libexec/PlistBuddy -c "Print CFBundleVersion" ${NEW_XCODE}/Contents/Info.plist)

echo The Old Xcode build version is $OLD_XCODE_BUILD
echo The New Xcode build version is $NEW_XCODE_BUILD

# Change Old Xcode build version to New Xcode
/usr/libexec/PlistBuddy -c "Set :CFBundleVersion ${NEW_XCODE_BUILD}" ${OLD_XCODE}/Contents/Info.plist

# Open Old Xcode (system will check build version and cache it)
open $OLD_XCODE

# Revert Old's Xcode's build version
/usr/libexec/PlistBuddy -c "Set :CFBundleVersion ${OLD_XCODE_BUILD}" ${OLD_XCODE}/Contents/Info.plist
fredpi 提问于2022-11-19
johndpope 修改于2022-11-20