添加供应商失败:crypto.randomUUID is not a function - cc-switch
Quick fix
升级到 cc-switch v3.9 或更新版本,该版本为旧 macOS 添加了 crypto.randomUUID 兜底逻辑;或升级 macOS 到 12.3 Monterey/11.6.5 Big Sur 以上。
Symptom
Section titled “Symptom”添加供应商失败:crypto.randomUUID is not a function. (In 'crypto.randomUUID()', 'crypto.randomUUID' is undefined)这是在 cc-switch 添加或更新供应商时调用系统 Web API `crypto.randomUUID()` 导致的。旧版 macOS(如 11.7.10、12.2.1)没有提供该函数,因此保存供应商时会抛出 `crypto.randomUUID is not a function`。该问题与 Node 版本无关,也不是供应商配置本身错误。
维护者在相关 issue 中确认:`crypto.randomUUID` 最早支持 macOS 12.3 Monterey 与 macOS 11.6.5 Big Sur;cc-switch 3.8.2 - 3.8.3 会直接调用该函数。修复方案是在 v3.9 中为旧系统添加兜底逻辑;若不升级 cc-switch,则需要升级 macOS。另有个别用户提到更新供应商时也会出现相同的报错。
将 cc-switch 升级到 v3.9 或更新版本;维护者确认该版本已为旧 macOS 添加 `crypto.randomUUID` 兜底逻辑。
如果暂时不能升级 cc-switch,请将 macOS 升级到 macOS 12.3 Monterey 或 macOS 11.6.5 Big Sur 及以上,使系统自带 `crypto.randomUUID()`。
重新打开 cc-switch,再次进入供应商管理并添加/更新供应商,确认不再报 `crypto.randomUUID is not a function`。
Affected Versions
Section titled “Affected Versions”Source Issues
Section titled “Source Issues”本页汇总自 4 个真实 issue
- 这个问题需要 macOS 升级到哪个版本以上才能解决?
- 维护者回复 `crypto.randomUUID` 最早支持 macOS 12.3 Monterey 和 macOS 11.6.5 Big Sur;升级到这些版本及以上可以解决。
- 兼容版本是哪个版本?
- 维护者确认 cc-switch v3.9 会添加旧系统兜底逻辑;如果你正在使用 3.8.2/3.8.3,请升级到 v3.9 或更新版本。
- 为什么我 Node 18+ 也会报这个错?
- 这个错误来自系统 Web API `crypto.randomUUID()`,与 Node 版本无关;旧版本 macOS 缺少该函数时就会触发。
- 更新供应商时也会报同样的错吗?
- 有用户报告更新供应商时偶尔也会出现相同报错,根因同样是旧 macOS 缺少 `crypto.randomUUID()`,可按相同方式升级 cc-switch 或系统。
这是一个非官方社区 wiki,与 cc-switch 作者及项目本身无隶属关系。内容整理自项目公开的 GitHub issues。本站不分发任何软件。