什么是 Tophat?
Tophat 是一款可一键安装并测试移动应用的工具。它旨在帮助团队从 CI 产物分发构建、创建安装链接,并在不要求贡献者在本地克隆或构建分支的情况下,在设备或模拟器上启动应用。
该项目还包含扩展和命令行能力,可集成自定义构建和缓存系统。Tophat 通过 install URLs、Quick Launch 和 artifact providers 同时支持 iOS 和 Android 工作流,并支持可包含多个面向不同目标的 artifacts 的 recipes。
主要功能
- 用于 CI 产物的一键安装链接,让测试人员和贡献者无需本地构建步骤即可安装构建版本。
- 基于 artifact provider 的下载,允许 Tophat 从内置 provider 或通过扩展添加的 provider 中拉取构建。
- 支持多种请求类型,包括 URL、Quick Launch 和
tophatctl命令行接口。 - 支持在单个请求中捆绑多个 artifacts 的 recipes,适用于模拟器和实体设备需要不同构建的场景。
- 用于将自定义构建和缓存系统集成到安装流程中的 TophatKit SDK 扩展。
- 面向常用应用的 Quick Launch 快捷方式,可下载最新构建、更新应用图标,并在所选设备上启动应用。
- 设备固定和基于设置的自定义,可更快访问常用设备和特定环境的工具路径。
- 支持启动参数,并为 iOS 和 Android 记录了交付方式。
如何使用 Tophat?
典型的设置会先将 Tophat 集成到你的构建或 artifact provider 中,以便它能够解析可下载的应用构建。然后,你可以创建安装链接、Quick Launch 条目,或者使用 tophatctl 为选定设备或模拟器触发安装。
对于拥有自定义基础设施的团队,可以使用 TophatKit SDK 和 shell-script provider 选项,将 Tophat 适配到现有的构建和缓存系统中。配置完成后,用户点击安装链接或在 Tophat 中选择应用,即可将构建下载、安装并在目标设备上打开。
使用场景
- 与 QA 共享 CI 构建,让测试人员可直接通过链接安装特定应用版本。
- 让外部贡献者在不克隆仓库或不在本地构建应用的情况下测试拉取请求。
- 当发布流程为不同目标生成不同 artifacts 时,通过一次请求安装分别用于模拟器和设备的构建。
- 为经常在多个项目或设备之间切换的开发者提供常用应用的快速访问。
- 通过扩展或 shell-script providers 将 Tophat 连接到自定义内部构建系统或缓存。
FAQ
Tophat 只支持一种 artifact 来源吗?
不。来源描述了内置 artifact providers 以及可通过 Tophat Extensions 安装的额外 providers。
Tophat 能同时处理设备和模拟器吗?
可以。文档说明单个请求可以包含多个 artifacts,Tophat 会根据所选目标选择合适的那个。
可以向已安装的应用传递启动参数吗?
可以。来源为 install URLs 记录了 arguments 查询参数,并注明了 iOS 和 Android 的平台特定处理。
有用于集成的命令行选项吗?
有。页面提到 tophatctl,并说明用户可以通过命令行列出 artifact providers。
Tophat 是否必须依赖自定义工具才有用?
不一定。来源提到内置 providers 和基础 HTTP 支持,同时也提供扩展以适配更定制化的设置。
替代方案
- 使用直接构建下载或共享链接进行手动应用分发:更简单,但不提供 Tophat 那种面向设备的安装流程或 Quick Launch 功能。
- CI artifact 查看器和下载门户:适合获取构建版本,但通常更侧重存储和访问,而不是一键安装到设备。
- 移动设备测试平台:更广泛的端到端测试套件,可能包含构建分发,但通常覆盖范围比 Tophat 聚焦的安装和启动工作流更大。
- 自定义脚本或内部分发工具:适合特定流水线,灵活性高,但通常比标准化的安装链接工作流更需要维护。
替代品
FixMyCWV
FixMyCWV 是一款 Core Web Vitals 审计工具,可识别 LCP、INP 和 CLS 问题,并提供代码级修复建议,适用于需要可执行性能洞察的开发者和团队。
Ably Chat
Ably Chat 提供聊天 API 和 SDK,用于自定义实时聊天应用:支持反应、在线/房间状态及消息编辑/删除,面向高并发场景。
AakarDev AI
AakarDev AI 是一个强大的平台,通过无缝的向量数据库集成简化 AI 应用程序的开发,实现快速部署和可扩展性。
DeepMotion
DeepMotion 是 AI 动作捕捉与人体追踪平台,可在浏览器中用视频(及文本)生成 3D 动画;并通过 Animate 3D API 便于开发集成。
Arduino VENTUNO Q
Arduino VENTUNO Q 边缘AI电脑,集成AI推理与微控制器确定性控制;用 Arduino App Lab 打通嵌入式、Linux与边缘AI开发。
Devin
Devin 是 AI 编程代理,帮助软件团队并行完成代码迁移与大规模重构子任务;工程师负责项目管理并批准改动。