73 lines
2.4 KiB
Markdown
73 lines
2.4 KiB
Markdown
# 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。
|