本文へスキップ

トラブルシューティング

デプロイがリモート 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 に制限されています。ゲームから OpenAI、ローカル LM Studio、独自バックエンドへ直接 fetch しないでください。

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

hostConnected が false のまま

  • Vifu の iframe runtime 内で開いているか確認します。
  • await vifu.ready() を呼んでいるか確認します。
  • 通常のローカルブラウザーでは false のままで正常です。
  • 古い companion.status() ではなく vifu.status() を確認します。

リソースが読めない

  • datamediabundle.include がマニフェストにあるか確認します。
  • デプロイ後のパスではなく、マニフェストの id / path を vifu.resources.* に渡します。
  • 生の /v1/assets/runtime-* URL をゲーム内で組み立てないでください。

同じゲームが更新されない

vifu deploy はサインイン中の所有者とデプロイ名で更新先を決めます。

  • 同じアカウント / API 環境でログインしているか確認します。
  • --name を変えると別ゲームとして扱われます。
  • dev と production は別環境です。

マニフェストが拒否される

公開 V1 では identryplayruntimeservicesdevicesresourcespermissionscapabilitiesbrowsersecurity を書きません。

代わりに main.urlbuild.outputaidatamediabundlesave などの公開フィールドを使ってください。