跳转至

设备

设备面板会在线程旁边显示实时 iOS 模拟器或 Android 模拟器,让你可以观看代理验证移动端工作,也可以自行点击设备。代理通过 device_* 工具和 agent-device 命令行获得同一设备,这些由 T3 Code 为其配置。

打开设备

打开项目线程中的右侧面板,然后选择 设备。首次使用时,面板会引导完成三个步骤:启动设备中心、检查 iOS 和 Android 支持,以及选择是否允许代理控制设备。仅打开面板不会下载或启动任何内容。如果中心已安装,设置屏幕会说明这一点并重新使用它。

选择正在运行的设备进行观看,或选择已停止设备旁边的 启动 来启动它。当你或代理启动设备时,面板会显示。每台设备都在自己的标签页中打开。使用 + → 设备 打开另一台设备,双击标签页名称或从右键菜单中选择 重命名 来重命名。只有可见的标签页会流式传输视频;切换标签页会让两台设备保持运行。在工具栏中选择 悬浮设备于聊天上方,以便在右侧面板显示其他内容时,继续在小组件窗口中观看和点击设备;通过其手柄拖动窗口,从任意边缘调整大小,并使用 在右侧面板中打开 将其恢复。关闭 设置 → 设备 中的 使用设备 可停止辅助进程;模拟器会一直运行,直到你将其关闭。

模拟器在托管环境服务器的机器上运行。iOS 需要安装了 Xcode 的 macOS。Android 需要 SDK Platform-Tools、Android Emulator 和 Command-line Tools(最新版),以及 Android Studio 的设备管理器中创建的虚拟设备。T3 Code 会检测标准 SDK 位置;若要自定义位置,请设置 ANDROID_HOME。面板会说明缺失的依赖项。安装 SDK 工具后,请重启环境服务器并刷新设备。

Android 模拟器视频还需要设备主机 PATH 中包含带 libx264 编码器的 ffmpeg,或该主机上由 SERVE_EMU_FFMPEG 指定的可执行文件。如果打开模拟器时报告 ffmpeg 问题,请安装或修复该可执行文件,然后重试打开。更改 PATH 或 SERVE_EMU_FFMPEG 后,请为本地设备重启环境服务器,或为 SSH 设备关闭再打开设备支持,以便运行中的工具继承新环境。物理 Android 设备和 iOS 不需要 ffmpeg。

屏幕是可交互的:点击并拖动进行触摸,在屏幕聚焦时输入文字,并使用工具栏执行 Android 上的 Home、Back 和 Recents 操作、iOS 上的旋转操作以及关机操作。关闭标签页可停止观看;设备会继续运行,除非你将其关机。关闭的标签页在重新加载后仍保持关闭。若要再次观看设备,请从 + → 设备 中选择它。

选择 3D 视图 可在实时屏幕保持交互的同时检查受支持的设备。在 iPhone Duo 上,使用折叠和姿态控制来改变其物理姿态,或在设备上捏合以调整铰链。将模型转向另一块屏幕,会把实时显示和触摸输入切换到该屏幕。恢复 3D 视图 使设备回到面向屏幕的位置。在受支持的 Android 折叠屏设备上,使用屏幕旁的 折叠设备 和 展开设备 可在任一视图中改变其姿态。

工具

工具栏的 工具 按钮会为当前打开的设备打开一个抽屉。它显示前台应用,并允许你切换浅色和深色模式、更改文本大小、切换辅助功能设置、在屏幕上叠加辅助功能元素框架、设置模拟位置,以及授予或撤销应用权限。iOS 还提供 Liquid Glass、色彩滤镜、VoiceOver 和发送测试推送通知;Android 则增加方向和网络切换。抽屉只显示平台能执行的操作,并且每个控件都会反映更改后从设备读回的值。

代理与设备

当代理打开设备时,它会像代理驱动的浏览器一样,悬浮在连接到该线程的 Web 和桌面客户端的聊天上方。关闭 设置 → 浏览器 中的 自动显示悬浮预览,改为在右侧面板标签页中打开。在移动应用中,打开代理的线程,点击输入框上方的设备按钮即可观看实时屏幕并控制它。在带有检查器的 iOS 布局中,设备会在线程旁边打开。最大化它以填满屏幕;关闭全屏视图会返回检查器。如果线程打开多台设备,可在查看器中选择一台。关闭查看器会停止流式传输,但仍让设备可供代理使用。设备活动也会出现在线程时间线中。

代理通过 agent-device 命令行驱动设备。只有在 代理可以使用设备 开启后,T3 Code 才会安装并启动它。iOS 点击在首次使用时会构建一个小型测试运行器,每个服务器一次,需花费几分钟。授予访问权限后,请重启现有代理会话,以便它获得设备 CLI 环境。

若要让代理无法使用模拟器,请关闭 设置 → 设备 中的 代理可以使用设备。这会从此后启动的代理中隐藏设备工具;你自己的设备面板不受影响。

远程连接

设备流通过环境服务器传输,因此可在局域网、Tailscale 和 T3 Connect 上工作。实时视频需要安全页面(HTTPS 或 localhost);在纯 HTTP 远程源上,iOS 会回退到较慢的静态图像流,而 Android 无法显示视频,但在 EAS Simulator 上除外。

SSH 设备主机

在 设置 → 设备 中,选择应使用该主机的环境,然后选择 添加源 → 通过 SSH 连接机器。输入 SSH 别名或 user@host,并可选指定身份文件和端口。这些会在环境服务器上解析,因此请使用该服务器上可用的 SSH 配置和密钥。不支持密码提示。

主机菜单中的 测试连接 会检查 SSH、Node、npm 和平台工具,而不会安装任何内容,并对每个所选环境给出结果。解析到环境自身机器的目标会被跳过,因为其设备已经是本地的。首次列出设备时会在主机上安装固定的设备工具。SSH 设备主机目前需要 macOS 或 Linux。若要在 Windows 机器上使用设备,请在该机器上运行 T3 Code 并连接到其环境。Node 22 或更高版本以及 npm 必须可用于非交互式 SSH 命令。T3 会检查常见的 Homebrew 和 Android SDK 位置;自定义安装需要在主机上设置相应的 PATH 和 ANDROID_HOME。Android 模拟器视频需要该主机上的带 libx264 的 ffmpeg;物理 Android 设备使用 scrcpy,不需要 ffmpeg。

当配置了多个主机时,选择器会按主机识别设备。连接在中断后会自动恢复。移除主机时,如果可达,将关闭其设备会话并停止其 T3 辅助程序;模拟器将继续运行。

T3 提供发现、流式传输和控制功能。应用构建、安装以及与 Metro 等开发服务器的连接需要单独安排。另一台机器上的模拟器无法通过你环境的 localhost 访问 Metro,除非设置了转发或使用其他可达地址。

Simlock 主机(alpha)

Simlock 将多台机器上的 iOS 模拟器和 Android 模拟器集中到一个池中。如果你运行 Simlock 网关,T3 可以从中租用设备。Simlock 是全新且尚未发布的产品,因此此集成属于 alpha 阶段:它可能随着 Simlock 的更新而变化或停止工作。T3 不会安装或管理 Simlock;请自行设置网关及其 worker。它需要从 Simlock 的 main 分支构建、版本为 6316e10 或更高的网关和 worker,该版本是首个包含租用者屏幕和输入功能的版本。

在 设置 → 实验室 → Simlock 设备主机(alpha) 中开启该功能,并在 设置 → 设备 中开启 使用设备,然后选择 添加来源 → Simlock 池,并提供 代理令牌(simlock --gateway token create --role agent)。为每个 T3 服务器配置各自独立的令牌:Simlock 会将使用同一令牌进行的每次租用都计入同一请求方,并且每次只允许一个租用,除非将网关的 lease.maxPerRequester 提高到该主机的 同时设备数。该令牌只能租用设备并访问其自身的租用,但租用设备上的命令会运行在其 worker 上,因此请像对待对 worker 的 shell 访问权限一样对待该令牌。T3 会在每个请求中发送该令牌,因此请使用 HTTPS 网关 URL;如果使用明文 HTTP,则仅限在 Tailscale 等加密网络上使用。网关和 worker 需要启用 capabilities.stream.enabled 和 capabilities.input.enabled,才能使用实时屏幕和输入功能。

选择器会列出你的 worker 可以创建的设备型号。打开一个设备会获取一个租用;通过 将设备返回到池中 关闭它,或移除主机,都会以已擦除状态将其归还。面板会让正在查看的设备保持租用状态,直至达到主机的租用上限。你可以进行点按、滑动、输入以及按下 Home 键;在 Android 上还可以按下 Back 和 Recents 键。旋转、外观、文本大小、设备工具和屏幕截图功能不适用于 Simlock 设备;代理仍可通过 device_open 执行这些操作。在 iOS 27 模拟器上,通过你的键盘输入不会产生任何效果;请改为点按屏幕上的键盘。Worker 必须运行与 T3 相同的 agent-device 版本(参见设备工具更新),并且 agent-device 只接受应用安装到某个租用,且安装来源只能是该租用被打开时所在的文件夹,该文件夹由 device_open 命名。设备无法通过 localhost 访问你机器上的开发服务器;请使用其 worker 可以访问的地址。

设备工具更新

已连接的 T3 服务器会在其自身机器和已配置的 SSH 主机上管理设备中心和代理工具。所需版本会在下次使用这些工具时自动安装。在 设置 → 设备 中,选择一个版本并选择 检查版本,即可在不安装工具或启动设备的情况下查看已安装的版本。

要在远程环境中获取较新的工具版本,请更新该环境的 T3 服务器。仅更新浏览器或移动应用不会更新远程服务器。离线主机会保留其已安装的文件,但更新需要网络访问,之后设备支持才能启动;T3 不会回退到较旧版本。如果安装失败,请重新连接主机并使用重试。现有的设备和代理访问设置将得到保留。

本页原文 Markdown:在 AtomGit 查看·内容源自开源项目 t3/t3code