跳到主要内容

从编辑到运行

在 Theseus 中,“已经保存”“已经构建”和“设备正在使用新版本”是三件不同的事。记住这条边界,能避免最常见的“明明改了,为什么现场没有变化”。

为什么需要知道

编辑器可以始终保留最新设计,而运行目标可能仍在使用上一次部署的版本。AI 写入文件、编辑器预览刷新,也不代表正在运行的对象树已经替换。理解生命周期,可以帮助你选择 Build、Run、Debug 或 Stop,而不是反复保存和刷新。

何时会遇到

以下情况都需要判断当前处于哪一层:

  • AI 或你自己修改了 Page、Graph、Object、Script、PLC 或模块设置;
  • Navbar 显示 Build、Run、Debug、Pause、Continue 或 Stop;
  • 使用本机或远端 Runtime target;
  • 系统提示 runtime 尚未加载、构建产物过期,或必须先停止应用;
  • 编辑器中的内容与运行页表现不一致。

六个关键概念

阶段发生了什么不会发生什么
编辑态你和 AI 修改当前 App 的设计源文件;编辑器读模型和诊断随保存刷新不会自动替换正在运行的对象树
Build检查源文件并生成 Graph、自定义代码、页面方法或 PLC 等运行产物,同时准备 runtime package不会启动 App,也不会执行设备动作
Deploy把桌面端准备好的 runtime package 发送到当前 Runtime target不会自动代表 App 已经开始运行
MaterializeRuntime target 把已部署版本加载到内存,准备对象、模块和运行所需状态不会启动正常或调试生命周期
Run按需完成构建、部署和加载后,以正常模式启动 App不启用 Graph 断点调试
Debug按需完成构建、部署和加载后,以调试模式启动 App不会跳过真实设备动作或自动保证流程正确

可以把它理解为:

编辑并保存 → Build → Deploy → Materialize → Run 或 Debug

你通常不需要手工逐个执行全部步骤。桌面端的 Run 和 Debug 会按需准备运行产物并部署到当前目标;显式 Build 适合在启动前先检查问题。某些在线配置、诊断或状态信息会提到 Materialize,它表示“运行时已经加载”,不是“应用已经启动”。

编辑态与运行态的边界

  • 保存后,编辑器看到的是最新设计;已部署的运行页仍以目标上的 runtime package 为准。
  • 编辑器预览可能立即刷新,但这不能证明远端 Runtime target 已经收到新版本。
  • Graph、自定义代码和 PLC 等修改需要有效的构建产物。Run/Debug 会检查这些产物,失败时不会启动。
  • Object、模块配置和其他运行模型的修改,要在 App 安全停止后,通过下一次 Materialize、Run 或 Debug 进入新的运行实例。
  • Running、Debugging、Paused、Starting 或 Stopping 时,不会替换当前运行对象树。 需要先 Stop,再构建或启动新版本。
  • Debug 的 Paused 仍然占用运行时。此时可以 Continue 或 Stop,不能把它当成已经停止。

什么时候用哪个动作

目标使用动作
只想检查 Graph、代码或 PLC 是否可以生成运行产物Build
正常验证画面和设备流程Run
需要断点、暂停、查看变量和逐步定位 Graph 问题Debug
应用正在运行,需要让新的运行模型生效Stop,然后 Run 或 Debug
只需要让已部署版本进入内存供在线能力使用Materialize;通常由相关操作按需触发

开始前先确认 Navbar 中选择的是正确的 Runtime target。本机和远端目标拥有不同的已部署版本、运行状态和账号会话。

常见误解

  • Build 不等于 Run。 构建成功只说明运行产物可以生成。
  • Materialize 不等于 Run。 它加载运行时,但不启动正常生命周期。
  • Stopped 不一定表示从未加载。 App 可以已经 Materialize,但生命周期仍是 Stopped。
  • 保存不等于部署。 AI 或人工保存只更新编辑态,运行目标仍需显式运行流程。
  • 切到远端目标不会把编辑器搬到远端。 你的 App 源文件仍在桌面端,远端只是当前执行目标。
  • 运行页看起来正常,不代表 Debug 已通过。 关键流程仍要覆盖正常、异常和超时分支。

下一步

  • 构建流程完成一次 Build、Run 和失败诊断。
  • Graph 自动化中练习断点、Pause 和 Continue。
  • 准备远端运行时,继续阅读应用管理中的运行目标与部署说明。