# v1 测试页

> OpenPWA 真机实验室的 v1 测试页：锁定文件列出的 /lab/device-tests/ 下 52 个文件、下发字节的 SHA-256 哈希，以及基线测试开始时已有哪些文件。

import LabHarnessFiles from '@components/lab/LabHarnessFiles.astro';
import LabProvenance from '@components/lab/LabProvenance.astro';

v1 测试页位于 [/lab/device-tests/](/lab/device-tests/)，供 iOS 18.6.2 基线测试使用。这组页面包括带标注图标、存储标记和通知记录器的实验室应用（[/lab/device-tests/](/lab/device-tests/)），T1 无 manifest 探测页（[/lab/device-tests/t1/no-manifest/](/lab/device-tests/t1/no-manifest/)），T3 仅含 manifest 的应用（[/lab/device-tests/t3/manifest-only/](/lab/device-tests/t3/manifest-only/)），T4 状态栏的各个变体及其独立应用，以及 T7 权限测试应用（[/lab/device-tests/t7/perm/](/lab/device-tests/t7/perm/)）。每项测试用到了其中哪些页面，见[研究报告](https://openpwa.net/research/2026-10-ios18-home-screen-web-apps/data/REPORT.md)。

## 文件与哈希

v1 的锁定文件 [lock.json](https://openpwa.net/lab/harness/v1/lock.json) 列出 52 个文件。各项分别记录 `openpwa.net` 下发字节的 SHA-256 和大小（`servedSha256`、`servedBytes`），以及源文件的 SHA-256 和大小（`sha256`、`bytes`）。`addedIn` 记录添加文件的提交，`presentAtBaselineStart` 记录基线测试开始时文件是否已存在。[SHA256SUMS.txt](https://openpwa.net/lab/harness/v1/SHA256SUMS.txt) 每个文件一行，是下发字节的哈希，你可以对自己抓到的文件算哈希来比对。

<LabHarnessFiles version="v1" locale="zh" />

## 下发字节与源文件字节

有三个文件的下发哈希和源文件哈希不同：`lab.css`、`t1/no-manifest/probe.css` 和 T7 权限测试页。原因记在锁定文件的 `servedTransform` 字段中。网站构建会把 `.css` 文件和内联 `<style>` 块里大于 600 的 `font-weight` 改成 600。研究报告在 T7 权限测试页发现了这种改动。测试期间抓取的快照里，标题声明的是 `font-weight:600`，仓库文件里写的是 `700`，行为上没有差别。

## 测试开始时已有的文件

锁定文件记录的基线测试开始时间是 2026-10-20T06:36:42Z。`presentAtBaselineStart` 为 true 的有 24 个文件，都在提交 `d5bb19c1` 中添加：实验室应用及其图标、worker 和 manifest，T3 仅含 manifest 的应用，最早的几个 T4 变体，以及 `sbs-*` 状态栏样式应用。其余 28 个文件的 `presentAtBaselineStart` 为 false：

- T1 无 manifest 探测页（3 个文件，提交 `77080a59`）；
- T4 状态栏条测试组：`white-top`、`theme-red`、`bg-green` 和 `dynamic`（4 个文件，提交 `1124b20d`）；
- T4 状态栏颜色补测用的 `theme-m1` 到 `theme-m3` 三个应用（15 个文件，提交 `f2eabda0`）；
- T7 权限测试应用（6 个文件，提交 `df421952`）。

## 运行时快照

研究[数据包](https://openpwa.net/research/2026-10-ios18-home-screen-web-apps/data/)的 `tools/site-snapshots/` 下保存了部分测试页文件的快照。研究报告记录，大约 08:28 UTC 部署的提交 `1124b20d` 替换了 `lab.js`。读数 N03 到 N36 跑的是旧模块（SHA-256 `849c0ac7…`），部署之后的几次读数里，已打开的页面仍在用缓存的旧模块（N37、N38-a）；`sw.js` 自始至终没有变。

锁定文件的 `runSnapshots` 列表给出每份快照的 SHA-256 和一个 `matchesCurrent` 标记。旧版 `lab.js` 标为 `false`。08:28 UTC 起下发的 `lab.js` 和 `sw.js`，以及 09:30 UTC 抓取的 T7 权限测试页、manifest 和 worker，都标为 `true`，即哈希与 v1 的下发哈希相同。没有快照的文件，只有锁定文件里的哈希可查。

## 勘误

v1 的锁定文件只允许为修复隐私或安全缺陷而改文件，改动时须附带日期的勘误。它的 `errata` 列表是空的。

在 v1 上跑测试之前，先对照 [SHA256SUMS.txt](https://openpwa.net/lab/harness/v1/SHA256SUMS.txt) 做一次哈希快照，做法见[在 iPhone 与 iPad 上运行真机实验室测试](/zh/lab/guides/iphone-ipad/)。

<LabProvenance locale="zh" />