Xcode 11 的奇葩问题:node 插一脚,从此不再纯洁
2023-12-28 21:11:17
对于 Xcode 11,尤其是从 Xcode 10.x 升级的小伙伴们来说,除了性能、稳定性等体验方面的优化之外,还有个稍显 " 魔性 " 的变化 —— node 突然介入升级流程。
乍一听好像跟前端开发有关,但实际上,只要你安装了 Xcode,那么不管有没有 Xcode Command Line Tools,都会被它不由分说地带入坑。
而对于绝大多数 macOS 开发者来说,Xcode 突然引入 node 真是个莫名其妙的操作。毕竟,Xcode 对于开发 macOS 来说已足够强大,不需要 node 插一脚。于是,这就衍生出了一个问题:怎么让它滚出 Xcode 11 的安装流程呢?
概率性问题?
不能确定是不是每个人都会遇到这个问题,但至少笔者遇到了(100%)。可能这个概率很低,但碰到这个问题时,确实让人一脸懵逼,毫无头绪。
由于 macOS 10.15 中默认安装了 Xcode 10.x,因此我们升级到 Xcode 11 时,是通过 App Store 更新,而非重新安装。而 Xcode 10.x 并不会额外安装 node。因此,Xcode 11 突然引入 node,多少会让开发者摸不着头脑。
Xcode 11 与 node
在 Xcode 11 中,node 主要用于构建和运行 Playground。Playground 是 Xcode 提供的一种交互式编程环境,可以用来编写、运行和调试 Swift 代码。
但是,对于大多数开发 iOS、macOS 或 tvOS 应用的开发者来说,很少会用到 Playground。因此,Xcode 11 中引入 node,更多的是一种 " 附带赠品 ",而不是刚需。
如何让 node 滚出 Xcode 11?
既然 Xcode 11 引入 node 对我们来说是多余的,那么如何让它滚出 Xcode 11 的安装流程呢?
答案是:卸载 Xcode Command Line Tools。
Xcode Command Line Tools 是一个单独的软件包,它提供了在命令行中使用 Xcode 工具所需的工具。如果你不使用 Xcode Command Line Tools,那么可以卸载它。
卸载 Xcode Command Line Tools 后,Xcode 11 将不再在升级过程中安装 node。
卸载 Xcode Command Line Tools
在终端中输入以下命令:
sudo rm -rf /Library/Developer/CommandLineTools
输入密码后,Xcode Command Line Tools 将被卸载。
重新安装 Xcode Command Line Tools(可选)
如果你将来需要使用 Xcode Command Line Tools,可以重新安装它。
在终端中输入以下命令:
xcode-select --install
Xcode Command Line Tools 将被重新安装。
结论
Xcode 11 引入 node 对于大多数 macOS 开发者来说是一个多余的操作。通过卸载 Xcode Command Line Tools,我们可以让 node 滚出 Xcode 11 的安装流程。
虽然这个 " 魔性 " 的问题并不常见,但当遇到它时,知道如何解决还是很有帮助的。