安装和切换多个 Xcode 版本的最佳命令行工具。
如果您正在寻找xcodes
的应用程序版本,请尝试 Xcodes.app。
Xcodes 现在是XcodesOrg
的一部分 - 在此处阅读更多信息
brew install xcodesorg/made/xcodes
这些是开发人员 ID 签名和公证的发布版本,不需要安装 Xcode 即可使用。
其他方法:
从版本页面下载最新版本。这些是开发人员 ID 签名的发布版本,不需要安装 Xcode 即可使用。
mint install XcodesOrg/xcodes
从源代码构建需要 Xcode 12.0 或更高版本,因此它不是从头开始设置计算机的选项。
git clone https://github.com/XcodesOrg/xcodes
cd xcodes
make install
# or, if /usr/local/ isn't in your PATH
PREFIX=/your/install/directory make install
安装时,您可能会得到以下输出:
swift build
error: terminated(72): xcrun --sdk macosx --find xctest output:
如果发生这种情况,则意味着您需要选择一个 Xcode 版本。您可以使用xcode-select
或通过在 Xcode 首选项“位置”选项卡中选择“命令行工具”选项来执行此操作。
使用如下命令之一安装特定版本的 Xcode:
xcodes install 10.2.1
xcodes install 11 Beta 7
xcodes install 11.2 GM seed
xcodes install 9.0 --path ~ /Archive/Xcode_9.xip
xcodes install --latest-prerelease
xcodes install --latest --directory " /Volumes/Bag Of Holding/ "
xcodes install --latest --experimental-unxip
然后系统会提示您输入 Apple ID 用户名和密码。您还可以为它们提供XCODES_USERNAME
和XCODES_PASSWORD
环境变量。
成功验证后,xcodes 会将您的 Apple ID 密码保存到钥匙串中,并会记住您的 Apple ID 以供将来使用。如果您需要使用与记住的 Apple ID 不同的 Apple ID,请设置XCODES_USERNAME
环境变量。
xcodes 将下载并安装您要求的版本,以便可以使用。
(1/6) Downloading Xcode 11.2.0: 100%
(2/6) Unarchiving Xcode (This can take a while)
(3/6) Moving Xcode to /Applications/Xcode-11.2.0.app
(4/6) Moving Xcode archive Xcode-11.2.0.xip to the Trash
(5/6) Checking security assessment and code signing
(6/6) Finishing installation
xcodes requires superuser privileges in order to finish installation.
macOS User Password:
Xcode 11.2.0 has been installed to /Applications/Xcode-11.2.0.app
如果您安装了 aria2(它可以在 Homebrew 中使用, brew install aria2
),那么 xcodes 将默认使用它进行下载。它使用多达 16 个连接来下载 Xcode,速度比 URLSession 快 3-5 倍。
默认情况下,Xcode 将安装到 /Applications,但您可以使用--directory
选项或XCODES_DIRECTORY
环境变量提供不同目录的路径。所有 xcodes 命令都支持此选项,例如select
和uninstall
,因此您可以管理不在 /Applications 中的 Xcode 版本。 xcodes 支持将所有 Xcode 版本安装在一个目录中,无论该目录位于何处。
运行此命令行以显示可用的运行时间
xcodes runtimes --include-betas
安装所需的运行时(例如 iOS 17.0-beta1)
xcodes runtimes install " iOS 17.0-beta1 "
.xcode-version
我们建议创建.xcode-version
文件来显式声明和存储供您的 CI 环境以及您的团队使用的 Xcode 版本。
13.4.1
阅读.xcode-version
的提案。
download <version>
: 下载特定版本的 Xcodeinstall <version>
:下载并安装特定版本的 Xcodeinstalled
:列出已安装的Xcode版本list
:列出可安装的所有 Xcode 版本select
: 更改选定的 Xcodeuninstall
: 卸载特定版本的 Xcodeupdate
: 更新 Xcode 可用版本列表version
: 打印 xcodes 本身的版本号signout
:清除存储的用户名和密码感谢 saagarjhi 的出色工作 - Xcode 现在能够在某些系统上将 unxip 速度提高 70%。
xcodes install --latest --experimental-unxip
xcodes 可以生成补全脚本,允许您在键入 xcodes 命令时按键盘上的 Tab 键自动补全命令和参数。安装完成脚本的步骤取决于您使用的 shell。有关不同 shell 的安装说明和底层实现的更多信息,请参阅 swift-argument-parser 存储库。
运行以下命令:
mkdir ~ /.oh-my-zsh/completions
xcodes --generate-completion-script > ~ /.oh-my-zsh/completions/_xcodes
您需要 Xcode 13 才能构建和运行 Xcode。
从 Xcode 运行 xcode 时,如果您想运行特定命令或传递一些参数,可以按住 option 键以显示包含更多选项的工作表。这意味着您可以使用Option + Command + R或在单击“运行”按钮时按住Option 。您可以在此处添加、删除和切换启动时传递给 xcode 的参数。
swift build
swift run
,或者像swift run xcodes list
这样的命令swift test
有一个 Makefile 可以帮助构建用于分发的 xcode。我们已经为您做到了这一点,以便通过 Homebrew 提供开发人员 ID 签名和公证的发布版本(请参阅安装)。
# Bump the version number in Version.swift, commit the change, and tag it
vim Sources/XcodesKit/Version.swift
git add Sources/XcodesKit/Version.swift
git commit -m " Bump version to $VERSION "
git tag -asm " $VERSION " " $VERSION "
# Clean first
make clean
# Make a release build of xcodes, sign it, and zip it
make zip
# Create a Homebrew bottle
make bottle VERSION= " $VERSION "
# Notarize the release build
# This can take a while
make notarize
TEAMID= " ABC123 "
# Push the new version bump commit and tag
git push --follow-tags
# Edit the draft release created by Release Drafter to point at the new tag
# Set the release title to the new version
# Duplicate xcodes-$VERSION.mojave.tar.gz and rename to xcodes-$VERSION.arm64_mojave.tar.gz
# Add the xcodes.zip, xcodes-$VERSION.mojave.tar.gz, xcodes-$VERSION.arm64_mojave.tar.gz files to the release
# Publish the release
# Update the Homebrew Bottle: https://github.com/XcodesOrg/homebrew-made/blob/master/Formula/xcodes.rb
值得注意的设计决策记录在 DECISIONS.md 中。 Apple.paw 中描述了 Apple 身份验证流程,它允许您使用 Paw 应用程序涉及的 API 端点。
xcode-install
和 fastlane/spaceship 都值得赞扬,因为它们找出了使这成为可能的困难部分。
马特·基亚克 - Twitter