# 为真机实验室读数配置 Web Inspector

> 把 iPhone 与 Mac 配对，在 Safari 标签页和主屏 Web 应用上打开 Web Inspector，按真机实验室记录仪器读数的方式读取页面状态。

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

仪器读数是代理读取后原样存入数据包 `raw/` 目录的数据，置信度标签为 A（[报告](https://openpwa.net/research/2026-10-ios18-home-screen-web-apps/data/REPORT.md)第 5.2、5.4 节）。2026-10-20 的测试里，读数走的是 Web Inspector 协议，部分标签页数值则用 WebDriver（`safaridriver`）读取。使用 Web Inspector 时，用数据线把设备连到 Mac，分别读取 Safari 标签页和主屏应用。Apple 的官方说明是 [Inspecting iOS and iPadOS](https://developer.apple.com/documentation/safari-developer-tools/inspecting-ios)（developer.apple.com），各个面板的介绍见 [Web Inspector](https://webkit.org/web-inspector/)（webkit.org）。

## 配对 iPhone 与 Mac

1. 在 iPhone 上打开「设置 > App > Safari > 高级」，打开**网页检查器**（Web Inspector）。
2. 在 Mac 上打开「Safari > 设置 > 高级」，勾选**显示网页开发者功能**，菜单栏会出现**开发**菜单（[Enabling Developer Features](https://developer.apple.com/documentation/safari-developer-tools/enabling-developer-features)，developer.apple.com）。
3. 用线连接 iPhone，解锁，如有提示就点**信任**。
4. 在 Mac 的 Safari 中打开**开发** > *你的 iPhone 名称*。这里会列出打开着的 Safari 标签页和正在运行的主屏 Web 应用，Service Worker 有时会单独列出。选中一项即可打开它的控制台。

需要的页面不在列表里时，把这一步记为 `could-not-run (not inspectable)`，然后继续。Mac 的 macOS 和 Safari 版本写进环境信息。

## 读一次数

读数时，在页面控制台运行探测脚本，保存它的输出。可以用实验室随数据一起公开的探测脚本，位于 [iOS 18.6.2 数据包](/zh/research/2026-10-ios18-home-screen-web-apps/data/)的 `tools/` 目录，也可以直接读测试页自带的面板。粘贴脚本、运行，把控制台输出存成文件，文件名包含步骤、环境和页面，例如 `<date>-<os>-<step>-app-lab.json`。每次读数的时间用 UTC 记录。

### 读取 Safari 标签页

在 Safari 里打开测试页，再到**开发** > *你的 iPhone 名称*下选中它，标签页列在 Safari 名下。标签页一侧的结果标为 `tab`。

### 读取主屏应用

从图标启动应用，让它留在前台。主屏 Web 应用运行在自己的进程里，所以在列表中单独成一项，不归在 Safari 下。页面只有在前台时才能读取；手机锁屏或应用退到后台的话，先切回来再读。应用一侧的结果标为 `app`。

## 让读数保持干净

探测脚本只读不写。它们读取特性检测、`matchMedia` 查询、几何尺寸和存储内容，不调用 `requestPermission()`、`subscribe()`、`share()`、`install()`、`register()` 或 `persist()`。所以权限和订阅的变化都来自操作员对测试页按钮的点击，记录里能看出是哪一步引起的。测试页加载时仍会自己做一些事，比如注册 Service Worker。读数仍然会在页面里执行 JavaScript（为了读 `env()` 安全区会插入一个隐藏元素，还会临时挂一个属性），[方法页](/zh/lab/methodology/)把这一点列为效度威胁。

脚本化读数时，实验室用 [ios_webkit_debug_proxy](https://github.com/google/ios-webkit-debug-proxy)（github.com）走 WebKit 远程检查器协议，用 `safaridriver` 做标签页的自动读数。`safaridriver` 会话打开的自动化窗口有自己独立的网站数据，初始为空，因此不能用它获取存储测试结果。做脚本化读数之前，先关掉 Mac 上连着这台手机的 Web Inspector 窗口。

## 读数中的隐私

推送订阅只读主机名，探测脚本只打印 `web.push.apple.com`，路径和密钥都丢弃。保存可检查页面列表之前，把其他网站的 URL 涂掉；设备 UDID、序列号和账户名不要出现在保存的文件和脚本里。照 [iPhone 与 iPad 指南](/zh/lab/guides/iphone-ipad/)填好环境信息，测试前后各把下发的文件和 [/lab/harness/v1/SHA256SUMS.txt](/lab/harness/v1/SHA256SUMS.txt) 比对一次。测试要求时先恢复干净状态（删图标、清网站数据）。

<LabProvenance locale="zh" />