跳到正文

故障排查

部署因远程 JavaScript 停止

vifu deploy 会阻止 CDN JavaScript、远程 WASM 和远程 Worker 脚本。

常见原因:

  • HTML 中有 <script src="https://cdn...">
  • 代码中有 await import("https://cdn...")
  • 可选的本地 AI 提供方被静态 import,即使运行时不用也进入了打包产物。

解决方式:

  • 把依赖打包进本地构建。
  • 从部署构建中移除不用的提供方 / import。
  • AI 通过 vifu.ai.generateText(...)vifu.ai.chat(...) 调用。

CSP 阻止外部 API

Vifu 运行环境的 connect-src 限制为 Vifu 平台 API。游戏不要直接 fetch OpenAI、本地 LM Studio 或自定义后端。

ts
await vifu.ai.generateText({
  model: "basic",
  messages: [{ role: "user", content: "Give a hint." }]
});

hostConnected 一直是 false

  • 确认游戏在 Vifu iframe runtime 中打开。
  • 确认调用了 await vifu.ready()
  • 普通本地浏览器中保持 false 是正常的。
  • 检查 vifu.status(),不要使用旧的 companion.status()

资源读不到

  • 确认清单中有 datamediabundle.include
  • 把清单中的 id / path 传给 vifu.resources.*,不要传部署后的 URL。
  • 不要在游戏中拼接原始 /v1/assets/runtime-* URL。

同一个游戏没有更新

vifu deploy 用当前登录的所有者和部署名决定更新目标。

  • 确认登录的是同一个账号 / API 环境。
  • 改变 --name 会被视为另一个游戏。
  • dev 和 production 是不同环境。

清单被拒绝

公开 V1 不写 identryplayruntimeservicesdevicesresourcespermissionscapabilitiesbrowsersecurity

请使用 main.urlbuild.outputaidatamediabundlesave 等公开字段。