xcodes
安装和切换多个 Xcode 版本的最佳命令行工具。
如果您正在寻找 xcodes
的应用程序版本,请尝试 Xcodes.app。
:tada: 公告
Xcodes 现已加入 XcodesOrg
- 点击此处了解更多
安装
Homebrew(推荐)
brew install xcodesorg/made/xcodes
这些是经过开发者 ID 签名和公证的发布版本,无需预先安装 Xcode 即可使用。
其他方法:
下载发布版
从发布页面下载最新版本。这些是经过开发者 ID 签名的发布版本,无需预先安装 Xcode 即可使用。
使用 Mint
mint install XcodesOrg/xcodes
从源代码构建
从源代码构建需要 Xcode 12.0 或更高版本,因此不适用于从头开始设置计算机。
git clone https://github.com/XcodesOrg/xcodes
cd xcodes
make install
# 或者,如果 /usr/local/ 不在您的 PATH 中
PREFIX=/your/install/directory make install
安装过程中,您可能会看到以下输出:
swift build
error: terminated(72): xcrun --sdk macosx --find xctest output:
如果出现这种情况,意味着您需要选择一个 Xcode 版本。您可以使用 xcode-select
或在 Xcode 的偏好设置位置选项卡中选择命令行工具选项来完成此操作。
用法
安装 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 以供future使用。如果需要使用不同于记住的 Apple ID,请设置 XCODES_USERNAME
环境变量。
xcodes 将下载并安装您请求的版本,使其可以使用。
(1/6) 下载 Xcode 11.2.0:100%
(2/6) 解压 Xcode(这可能需要一段时间)
(3/6) 将 Xcode 移动到 /Applications/Xcode-11.2.0.app
(4/6) 将 Xcode 存档 Xcode-11.2.0.xip 移动到垃圾桶
(5/6) 检查安全评估和代码签名
(6/6) 完成安装
xcodes 需要超级用户权限才能完成安装。
macOS 用户密码:
Xcode 11.2.0 已安装到 /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 <版本>
:下载特定版本的 Xcodeinstall <版本>
:下载并安装特定版本的 Xcodeinstalled
:列出已安装的 Xcode 版本list
:列出所有可安装的 Xcode 版本select
:更改选定的 Xcodeuninstall
:卸载特定版本的 Xcodeupdate
:更新可用 Xcode 版本列表version
:打印 xcodes 本身的版本号signout
:清除存储的用户名和密码
实验性解压 - 用于更快速的解压
感谢 saagarjhi 的出色工作 - Xcodes 现在包含了在某些系统上最多可提高 70% 解压速度的功能。
xcodes install --latest --experimental-unxip
Shell 补全脚本
xcodes 可以生成补全脚本,让你在输入 xcodes 命令时可以按 Tab 键自动补全命令和参数。安装补全脚本的步骤取决于你使用的 shell。关于不同 shell 的安装说明和底层实现的更多信息可在 swift-argument-parser 仓库中找到。
Zsh,使用 oh-my-zsh:
运行以下命令:
mkdir ~/.oh-my-zsh/completions
xcodes --generate-completion-script > ~/.oh-my-zsh/completions/_xcodes
开发
你需要 Xcode 13 来构建和运行 xcodes。
使用 Xcode
尽管 xcodes 是一个命令行应用,但所有常规功能在 Xcode 中都能正常工作,如构建、运行和测试。当程序提示输入 Apple ID 或 2FA 验证码时,你甚至可以直接在 Xcode 的控制台中输入文本。在 Xcode 中运行 xcodes 时,如果你想运行特定命令或传递一些参数,可以按住 Option 键来显示更多选项的面板。这意味着你可以使用 Option + Command + R 或在点击运行按钮时按住 Option。在这里,你可以添加、删除和切换启动 xcodes 时要传递的参数。
使用 Swift 命令行工具
安装 Xcode 后,你也可以使用 Swift 命令行工具:- 构建:
swift build
- 运行:
swift run
,或像swift run xcodes list
这样的命令 - 运行测试:
swift test
有一个 Makefile 可以帮助构建用于分发的 xcodes。我们已经为你做好了这个工作,通过 Homebrew 提供了经过开发者 ID 签名和公证的发布版本(参见安装)。
发布 xcodes 的新版本
# 在 Version.swift 中更新版本号,提交更改,并打上标签
vim Sources/XcodesKit/Version.swift
git add Sources/XcodesKit/Version.swift
git commit -m "将版本更新至 $VERSION"
git tag -asm "$VERSION" "$VERSION"
# 首先清理
make clean
# 制作 xcodes 的发布版本,签名,并打包成 zip
make zip
# 创建 Homebrew bottle
make bottle VERSION="$VERSION"
# 对发布版本进行公证
# 这可能需要一些时间
make notarize \
TEAMID="ABC123"
# 推送新的版本更新提交和标签
git push --follow-tags
# 编辑由 Release Drafter 创建的草稿版本,将其指向新标签
# 将发布标题设置为新版本号
# 将 xcodes.zip 和 xcodes-$VERSION.mojave.tar.gz 文件添加到发布中
# 发布该版本
# 更新 Homebrew Bottle:https://github.com/XcodesOrg/homebrew-made/blob/master/Formula/xcodes.rb
重要的设计决策记录在 DECISIONS.md 中。Apple 认证流程在 Apple.paw 中有描述,使用 Paw 应用可以让你尝试相关的 API 端点。
xcode-install
和 fastlane/spaceship 都值得表扬,它们为实现这一功能的难点提供了解决方案。