Skip to content

[REC][macOS] 补全 Xcode 安装链:mas / xcodes / xcode 三个 install recipe #62

Description

@edwinjhlee

背景

在 macOS 上做 Swift 开发(swift test / XCTest)必须有完整 Xcode——Command Line Tools 不带 XCTest.frameworkimport XCTest 会直接 no such module。当前 x-cmd install 没有 macOS 的 Xcode 安装链路。建议补 3 个 recipe,正好串成一条完整工作流(实际场景:macli / maclisten / macvision / macmlx 这几个 Swift CLI 项目本地跑 swift test 都卡在这一步)。


1️⃣ mas — Mac App Store CLI

mas install 497799835      # 装 Xcode(App Store 固定 ID)
mas list                   # 列出已装 App
mas upgrade                # 全部升级
mas search xcode           # 搜索

⚠️ mas signin 在新 macOS 上已坏,需先在 App Store.app 手动登一次 Apple ID;之后 mas install 可纯 CLI。

2️⃣ xcodes — Xcode 版本管理器 / 安装器(多线程下载,可装指定版本)

xcodes install --latest    # 装最新版(aria2 多线程,需登 Apple ID + 2FA)
xcodes installed           # 列出已装版本
xcodes select 16.0         # 切换当前 Xcode
xcodes listall             # 列出所有可用版本

3️⃣ xcode — 完整 Xcode(核心目标)

x install xcode 编排上面任一渠道(优先 xcodes,回退 mas install 497799835),并自动跑收尾步骤——这才是 x-cmd 真正的增值点:

sudo xcode-select -s /Applications/Xcode.app/Contents/Developer
sudo xcodebuild -license accept
sudo xcodebuild -runFirstLaunch
xcode-select -p            # 验证:应指向 Xcode.app/Contents/Developer

为什么进 x-cmd install

  • swift test / XCTest 必须完整 Xcode,CLT 没有 XCTest.framework
  • 这三个串起来 = macOS Swift 开发的完整本地回归链路
  • x-cmd 已有跨包管理器抽象(brew / scoop / apt / pixi),mas / xcodes / xcode 是 macOS 缺的最后一块。
  • 收尾三步(xcode-select -s / license accept / runFirstLaunch)自动化后,x install xcode 一条命令出可用环境,比裸 mas install 体验强很多。

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions