AIGC标识 godot-secure加密 pck 问题

Error: Couldn't load project data at path ".". Is the .pck file missing? when running a build of the engine in same directory as the same named pck. Same error when using --main-pack.
“找不到 PCK”不是 PCK 真的没有生成,而是安全引擎无
法识别已经嵌入 EXE 的 PCK。

根因有两个:

  1. godot-secure 的 Python 脚本每个 Action 矩阵任务都会随
    机生成:

    • PACK_HEADER_MAGIC
    • ENCRYPTED_HEADER_MAGIC
    • security_token

    项目导出使用的安全引擎、Windows/Linux Release
    Template 并不是同一组值。于是导出的 EXE 虽然有 pck
    段,但开头是随机值,例如之前的 WMXN,运行时不认识它。

  2. 自定义 GDPC/GDEC 逻辑本身还有一个源码问题:
    start_setup() 没有正确声明全局变量,所以界面显示成了
    GDPC/GDEC,实际编译使用的 header magic 仍然是随机值。

因此 Godot 运行时找不到可识别的内嵌 PCK,就回退去寻找外
置:

GodotLineCollection.pck

找不到后才显示:

Couldn't load project data ... Is the .pck file missing?

现在已经修复为:

  • 固定 PACK_HEADER_MAGIC = GDPC

  • 固定 ENCRYPTED_HEADER_MAGIC = GDEC

  • 从 SCRIPT_AES256_ENCRYPTION_KEY 派生稳定的 32 字节
    security_token

  • 所有平台共用同一套安全引擎、模板和 PCK 协议

  • Windows/Linux 使用 embed_pck=true

所以现在 Linux/Windows EXE 内的 PCK 可以被正确识别,不需
要外置 .pck。

posted @ 2026-08-07 19:20  meny  阅读(14)  评论(0)    收藏  举报