Safari 适配源码（macOS 构建准备版，尚未完成 Safari 实机验收）

Safari 不能像 Chrome 那样直接加载此 ZIP 或 manifest.json。包内 safari 文件夹是 Web Extension 源码，不是可安装的应用；需要完整 Xcode 将其打包成包含 Safari 扩展的 macOS 应用。当前没有随包分发签名或公证后的 Safari 应用，也未在 App Store 上架。

构建步骤（开发者）：
1. 在 Mac 安装完整 Xcode，并完成 Xcode 自身的首次启动设置。
2. 在解压后的包目录运行：node build-safari.mjs
3. 用 Xcode 打开生成的 SafariProject 工程，选择自己的开发团队，按 Apple 文档构建、签名和运行包含应用。
4. 在 Safari 设置 → 扩展中确认已构建的扩展。按浏览器提示，仅授予解帧网站与当前原站需要的访问权限。不要修改或关闭 Safari 的安全校验来绕过签名要求。
5. 刷新解帧网站，按照普通扩展授权流程，检查接收网站与原站并明确确认。域名或端口改变后重新下载源码、构建，避免继续连接旧入口。

Safari 兼容处理：
- 使用 browser/chrome WebExtension API 与非持久后台脚本。
- storage.session 不可用时，授权请求只保存在后台内存；后台被系统回收后需要回网站重新发起。不会改为持久保存 Cookie 或待授权请求。
- downloads API 不可用时，通过浏览器下载链接导出文件。实际保存行为受 Safari 设置及版本影响，仍需在目标版本验收。
- 仍限制为用户当前站点和网站发起的短期授权请求，保留原有来源、标签页、时效与明确确认校验。

未安装签名 Safari 扩展时，直接在网站使用「内置浏览器登录」或「文件导入」。内置浏览器不会自动读取 Safari 的已有登录状态，登录过程在服务器独立浏览器中进行。macOS Safari 也可通过「开发 → 显示网页检查器 → 网络」手动复制原站请求的 Cookie，再由用户明确导入。

iPhone/iPad：本包脚本只准备 macOS 工程；iOS/iPadOS 需要独立应用目标、签名与分发，当前没有可安装版本。可在网页使用文件导入或可用的内置浏览器入口。

Apple 文档：https://developer.apple.com/documentation/safariservices/packaging-a-web-extension-for-safari
