# ZipHarbor 模拟器与 App Icon 验收记录

日期：2026-10-01。工程：`ZipHarbor/ZipHarbor.xcodeproj`，Bundle ID：`com.xiaolongxu.zipharbor.app`。

## 结论

带新 App Icon 的 Debug 构建已在一台全新的 iPhone 14 模拟器中完成完整测试。Xcode 结果包显示 **35/35 通过、0 失败、0 跳过**：21 项引擎/单元/性能测试和 14 项 UI 工作流全部通过。新图标同时通过资源编译和模拟器构建产物检查。

本轮只做模拟器验收；没有把本轮图标构建宣称为 iPhone 14 真机验收。此前的真机功能证据仍见 [07-新工程最终验收报告](07-新工程最终验收报告.md)。

## 执行环境

| 项目 | 值 |
| --- | --- |
| 设备 | iPhone 14（全新 QA 模拟器） |
| UDID | `A875629A-52DA-43B2-9917-62B406AE0AB4` |
| 系统 | iOS 26.5，Build 23F77 |
| 构建 | Debug，Swift 6，iOS 17.0 最低版本 |
| 结果 | `results/iPhone14-full.xcresult` |

## 产品测试覆盖

- ZIP、ZIP AES、7z 创建与往返解压；独立 TAR、tar.gz、tar.bz2、gzip、bzip2、RAR5 读取。
- 中文文件名、空目录、目录结构、分卷 ZIP、缺卷、路径穿越和已有符号链接逃逸。
- 缺少密码、错误密码、输入正确密码后自动继续原任务；“完成”按钮关闭结果弹窗。
- 重复解压冲突：取消、失败筛选重试、应用到全部冲突、保留两者。
- 任务暂停/恢复、启动前取消、写入中取消、历史记录清理和任务重启状态。
- 两步 AES 创建流程、返回保留选择、选中目录解压、预览和收藏。
- 中英文、深色模式、最大 Dynamic Type、大字号布局、设置项和默认目录。
- 系统 Files 导入真实归档、分享面板、外部目录选择取消保持原目标。
- 模拟器照片和视频选择后创建归档；测试素材为本轮生成的合成 PNG 与 2 秒 MP4，不读取私人媒体。

## App Icon 验收

新图标使用蓝紫渐变和拉链文件夹图形：文件夹表达归档，拉链表达压缩与解压。标准和深色资源均为 1024×1024 RGB、不含 alpha，已经接入 `Assets.xcassets/AppIcon.appiconset`。

`xcrun actool` 针对 iPhone/iPad、iOS 17.0 编译成功，0 warning、0 error。测试构建产物中的 `AppIcon60x60@2x.png` 已检查为新图标缩略图。设计稿、深色版本、缩小预览和校验记录见 [App Icon 资源说明](app-icon/README.md)。

## 结果索引

- [XCTest 结果摘要](simulator-acceptance-20261001/summary.json)
- [测试列表](simulator-acceptance-20261001/tests.json)
- [完整测试日志](simulator-acceptance-20261001/iPhone14-full.log)
- [验收结构化记录](simulator-acceptance-20261001/acceptance.json)
- [关键 UI 截图](simulator-acceptance-20261001/screenshots/)
- [App Icon 编译校验](app-icon/validation.json)

执行命令：

```sh
xcodebuild -project ZipHarbor/ZipHarbor.xcodeproj \
  -scheme ZipHarbor \
  -destination 'platform=iOS Simulator,id=A875629A-52DA-43B2-9917-62B406AE0AB4' \
  -derivedDataPath /tmp/ZipHarbor-Migration \
  -parallel-testing-enabled NO \
  -resultBundlePath docs/simulator-acceptance-20261001/results/iPhone14-full.xcresult test
```

## 未覆盖的人工边界

真实 iCloud/第三方文件提供者下载与写入、本人 Face ID 成功/失败/取消、真人 VoiceOver，以及真机上长任务暂停/恢复触控仍需要对应环境和人工参与。模拟器通过不替代这些场景的人工验收。
