项目文件夹

文件
2026-07-13 12:31:29 +08:00

73 行
2.4 KiB
Markdown

此文件含有模棱两可的 Unicode 字符
此文件含有可能会与其他字符混淆的 Unicode 字符。 如果您是想特意这样的,可以安全地忽略该警告。 使用 Escape 按钮显示他们。
# 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。