Skip to content

About

Native macOS inspector for analytics events, HTTP requests and response mocks over USB or local network.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Repository files navigation

App Inspector 应用图标

App 观察台 · App Inspector

在 Mac 上实时查看 App 的埋点事件与接口请求。真机通过 USB 连接,也支持本机模拟器。

原名 Tracking Inspector / 埋点观察台。早期发布版本与安装包仍使用旧名称;新版继续兼容原有记录文件。

iOS App 需接入 采集协议。

下载

下载最新 DMG,打开后将应用拖入 Applications。

支持 macOS 13+,仅限 Apple Silicon(M 系列芯片)。目前使用 ad-hoc 签名,尚未经过 Apple 公证,首次打开可能被系统拦截;Release 附带 SHA256SUMS 校验文件。

功能

  • 同时查看最多 8 台设备;拔掉 USB 后暂停读取,重新连接后恢复。
  • 菜单栏常驻:查看连接状态、打开观察台、刷新设备。关闭窗口后继续采集,重新打开恢复当前保留的记录。
  • 页面适配宽屏,最新接收的事件显示在顶部;查看旧事件时保持阅读位置。
  • 搜索参数、按设备和事件筛选,一键只看或排除事件,保存常用筛选。
  • 比较两条事件的字段差异,从参数直接创建校验规则并预览异常。
  • 独立「接口请求」页:查看请求参数、完整响应正文、HTTP 状态、耗时和重试过程,筛选失败或慢请求。需要手机端接入新版接口采集。
  • JSON 正文支持高亮、展开一级、展开全部、收起全部与原文切换;Response Mock 可让指定接口直接返回编辑后的 JSON 和 HTTP 状态码。
  • 保存埋点和接口记录,离线回看、搜索和分析。

多设备事件与参数详情

从字段创建校验规则并预览异常

使用

  1. 在手机运行已接入采集协议的 App;非 Debug 构建需使用有观察权限的测试账号。
  2. USB:连接、解锁并信任 Mac,在观察台选择设备。
  3. 模拟器:在这台 Mac 的 iOS 模拟器中运行已接入采集协议的 App,在观察台勾选「模拟器 · 本机」。已有设备选择会保留;首次使用且仅发现一台本地设备时自动连接。
  4. 操作手机或模拟器,在「埋点」页查看事件,在「接口请求」页查看请求。选中一条事件「设为对比基准」,再选另一条即可比较。

模拟器共用本机采集端口,目前一次只能观察一个模拟器 App;同时运行多个时,请退出其他 App,再重新启动要观察的 App。

未发现真机时,请确认数据线支持数据传输、手机已解锁并信任 Mac,且 Finder 能识别设备。调试时请继续执行断点。iOS 挂起 App 时读取会暂停,恢复运行后自动重连。

关闭窗口不会退出应用;从菜单栏或 Dock 可重新打开同一个观察台。暂停更新只冻结页面显示,后台继续接收埋点事件与接口请求。记录保存在本次运行的内存中:埋点最多保留 2,000 条 / 16 MB,接口独立保留 500 条;手机采集时会省略超过 2 MiB 的请求或响应正文。退出前可用「保存记录」导出,退出后不会自动保留。Mac 休眠期间无法持续采集,唤醒后会尝试补读手机仍保留的记录。

查看接口日志

  1. 更新手机 App 和 Mac 工具并连接设备,点击顶部「接口请求」。旧版手机仍可看埋点,接口请求页会提示更新。
  2. 在手机打开页面或刷新内容,请求立即显示为「进行中」,完成后更新状态。点击请求,切换「响应」「请求」「重试过程」查看内容。
  3. 输入接口路径、参数或响应关键字搜索;选择「只看失败」或勾选「耗时 ≥ 1 秒」。取消请求不会归入失败。
  4. 点击正文旁「复制」复制已采集的正文,或「复制请求记录」复制完整记录。URL、请求头及正文保留采集到的原值,不做自动脱敏;请求、响应正文分别按原始字节数判断,超过 2 MiB 时省略该正文,保留大小与省略原因。限制内的 JSON 和文本完整保留,二进制显示完整 Base64。流式请求正文不额外读取,避免影响 App 发送请求。
  5. 「保存记录」同时保存当前保留的埋点和接口;「导出筛选结果」只保存当前页筛选出的记录。收到文件后点击「打开记录…」回看,再点「返回实时采集」继续查看设备。

Mac 接口历史最多保留 500 条,手机端缓存最近 100 条,独立于埋点缓存。2 MiB 限制只作用于手机采集的日志正文,业务请求与响应不受影响;复制和记录导入导出没有固定大小上限。暂停更新仍会继续采集;清空接口不会清空埋点,已清空请求后续完成也不会重新出现。当前只覆盖接入统一网络层的业务接口,图片、音视频和独立 SDK 的请求需另行接入。

Xcode 开发

使用 Xcode 16+ 打开 AppInspector.xcodeproj,选择 AppInspector scheme 和 My Mac:⌘R 运行、⌘U 测试、Product → Archive 归档。默认本机签名,无需配置开发者账号。

版本号在 App target 的 General 中修改;图标位于 Resources/Assets.xcassets,核心逻辑为本地 InspectorCore Package。执行 bash Scripts/build-dmg.sh 可通过同一工程生成 App Inspector.app、App-Inspector.zip 和 App-Inspector-<版本>-arm64.dmg。

GitHub 仓库名为 app-inspector,工程、scheme、App target、模块及可执行文件名统一为 AppInspector。Bundle ID 和记录格式保留原有标识,以兼容已有安装和记录文件。Wi-Fi、局域网配对及手动地址连接已移除;旧的无线选择会在升级后清理。

Response Mock

需要手机 App 同时更新到支持 Mock 的版本,并使用有观察权限的账号。

  1. 连接手机,在「接口请求」中选中一条当前会话的记录,点击「创建 Response Mock」。
  2. 修改响应 JSON 和 HTTP 状态码,点击「保存并启用」,等待手机确认。
  3. 在手机上再次触发接口。命中时不请求该接口服务器,记录会标记 MOCK。
  4. 点击「Mock 规则」可编辑、停用或删除规则。停用后,后续请求恢复真实接口。

规则按请求方法、域名和路径匹配,忽略查询参数;不修改请求头或请求参数。关闭编辑弹窗仍会继续 Mock。规则只保存在当前设备会话的内存中,切换账号会清除;意外断连后,手机最晚在最后一次心跳后的 12 秒停用,重连不会自动恢复。其他未命中的接口仍正常请求。

About

Native macOS inspector for analytics events, HTTP requests and response mocks over USB or local network.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages