# 设备型号数据库

> OpenClaw 如何在 macOS 应用中内置 Apple 设备型号标识符，以显示易读名称。

- 网址：https://funcoding.ai/agents/openclaw/reference/device-models/
- 来源：OpenClaw 官方文档原文（中文），MIT 许可，同步于 2026-10-11
- 官方原文：https://docs.openclaw.ai/zh-CN/reference/device-models

---
macOS 配套应用的 **Instances** UI 会将 Apple 型号标识符映射为易读名称（`iPad16,6` -> “iPad Pro 13 英寸 (M4)”，`Mac16,6` -> “MacBook Pro（14 英寸，2024）”）。`DeviceModelCatalog` 还会使用标识符前缀（无法使用时回退到设备系列），为每台设备选择一个 SF Symbol。

`apps/macos/Sources/OpenClaw/Resources/DeviceModels/` 中的文件：

| 文件                                   | 用途                                  |
| -------------------------------------- | ------------------------------------- |
| `ios-device-identifiers.json`          | iOS/iPadOS 标识符 -> 名称映射         |
| `mac-device-identifiers.json`          | Mac 标识符 -> 名称映射                |
| `NOTICE.md`                            | 固定的上游提交 SHA                    |
| `LICENSE.apple-device-identifiers.txt` | 上游 MIT 许可证                       |

## 数据源

从采用 MIT 许可证的 `kyle-seongwoo-jun/apple-device-identifiers` GitHub 仓库引入。JSON 文件固定到 `NOTICE.md` 中记录的提交 SHA，以确保构建具有确定性。

## 更新数据库

1. 选择要固定到的上游提交 SHA（iOS 和 macOS 各一个）。
2. 使用新的 SHA 更新 `apps/macos/Sources/OpenClaw/Resources/DeviceModels/NOTICE.md`。
3. 重新下载固定到这些提交的 JSON 文件：

```bash
IOS_COMMIT="<commit sha for ios-device-identifiers.json>"
MAC_COMMIT="<commit sha for mac-device-identifiers.json>"

curl -fsSL "https://raw.githubusercontent.com/kyle-seongwoo-jun/apple-device-identifiers/${IOS_COMMIT}/ios-device-identifiers.json" \
  -o apps/macos/Sources/OpenClaw/Resources/DeviceModels/ios-device-identifiers.json

curl -fsSL "https://raw.githubusercontent.com/kyle-seongwoo-jun/apple-device-identifiers/${MAC_COMMIT}/mac-device-identifiers.json" \
  -o apps/macos/Sources/OpenClaw/Resources/DeviceModels/mac-device-identifiers.json
```

4. 确认 `LICENSE.apple-device-identifiers.txt` 仍与上游一致；如果上游许可证发生变化，请将其替换。
5. 验证 macOS 应用能够顺利构建：

```bash
swift build --package-path apps/macos
```

## 相关内容

- [节点](https://funcoding.ai/agents/openclaw/nodes/)
- [节点故障排查](https://funcoding.ai/agents/openclaw/nodes/troubleshooting/)
