Files
2026-07-13 12:31:29 +08:00

73 lines
2.4 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# macOS GUI 使用说明
`CodexProviderSync.app` 是 macOS 桌面版 GUI,使用 Avalonia 构建,复用 `desktop/CodexProviderSync.Core` 的状态、同步、切换、恢复和清理逻辑。
## 构建
需要 .NET 10 SDK。
```bash
./scripts/publish-gui-macos.sh
```
构建 Intel (x86_64) 版本:
```bash
./scripts/publish-gui-macos.sh --runtime osx-x64 --output artifacts/osx-x64
```
默认产物:
```text
artifacts/osx-arm64/CodexProviderSync.app
```
如需指定 SDK
```bash
DOTNET=/path/to/dotnet ./scripts/publish-gui-macos.sh
```
## 功能
- 选择或输入 Codex Home,默认 `~/.codex`
- `Refresh` 查看当前 provider、rollout provider counts、SQLite provider counts、备份统计、project visibility 和 `encrypted_content` 风险提示
- Provider 列表展示 `config``rollout``SQLite``manual` 来源
- 手动添加或删除 provider
- `Sync Metadata Only`
- `Switch config.toml and sync`
- `Restore Backup`,可选择恢复 `config.toml`、SQLite、rollout metadata
- `Clean Old Backups`
- `Open Backup Folder`
- 执行日志和错误提示
## 安全边界
- App 启动和 `Refresh` 不会修改 Codex Home 下的 session、SQLite 或 `config.toml` 元数据
- 写操作前会弹出确认
- `sync``switch` 由 Core 先创建 backup,再修改 metadata
- `encrypted_content` 只提示风险,不承诺修复
- 不处理 `auth.json`
- 不登录、不认证
- 不修改对话内容
- 不修改 `updated_at`
## 操作建议
执行 `Sync Metadata Only``Switch config.toml and sync``Restore Backup``Clean Old Backups` 前,先关闭:
- Codex CLI
- Codex App
- app-server
- 仍在使用相关 Codex Home 的终端任务
如果看到 `state_5.sqlite is currently in use`,关闭上述进程后重试。
如果日志显示跳过 locked rollout files,通常表示当前会话仍占用 rollout 文件。同步大多已完成;等会话结束后再运行一次 sync 可补齐这些文件。
## 发布说明
`scripts/publish-gui-macos.sh` 默认发布 `osx-arm64` self-contained `.app` bundle,并在本机可用时执行 ad-hoc `codesign`。该脚本不修改 Windows GUI 发布脚本 `scripts/publish-gui.ps1`
当前 Avalonia 11.3.x 构建可能显示 `Tmds.DBus.Protocol` 的 NuGet advisory warning。该依赖来自 Avalonia 桌面包的跨平台传递依赖;macOS 发布产物可构建运行,但发布前仍应按团队安全策略评估或升级 Avalonia。