diff --git a/apps/ai-game-creator-shell/src/view/project-development/export/state/useTaonierTab.ts b/apps/ai-game-creator-shell/src/view/project-development/export/state/useTaonierTab.ts index c054f6658..1325db74f 100644 --- a/apps/ai-game-creator-shell/src/view/project-development/export/state/useTaonierTab.ts +++ b/apps/ai-game-creator-shell/src/view/project-development/export/state/useTaonierTab.ts @@ -191,7 +191,19 @@ export function useTaonierTab({ step: 'build', percent: null, }); - const built = await taonier.packageAll(); + let built: boolean; + try { + built = await taonier.packageAll(); + } catch (error) { + // `packageAll` 在宿主不可用/读失败时会直接抛(含 exportUnavailable)。不接住的话进度 + // 会停在 `running`,而正在跑的对话框没有关闭入口,面板会一直卡在「正在打包发行包…」。 + setProgress({ + phase: 'failed', + message: '发布失败', + detail: error instanceof Error ? error.message : String(error), + }); + return; + } if (!built) { // 打包自己会把校验红字 / 适配弹窗 / 失败现场交给用户,这里只收起进度。 setProgress(null);