Cocos 3.8.8 新版构建面板问题反馈

2026 年 10 月 8 日更新 Creator 后,原有项目在新版构建发布面板中遇到了两个问题:Bundle 较多时,整份配置表单校验失败;解决表单体积问题后,扩展中的资源选择器仍无法使用,构建按钮被禁用。

目前通过插件增加菜单、打开编辑器保留的旧版构建面板,暂时恢复了原来的操作方式。下面整理环境、现象和本机排查结果,供官方定位。

环境

项目 信息
操作系统 macOS
编辑器显示版本 Cocos Creator 3.8.8
更新及问题发现日期 2026-10-08
复现平台 支付宝小游戏
项目 Bundle 数量 127 个
项目构建扩展 使用 contributions.builder 注册的自定义构建扩展
新版面板模块 builder-ui,包版本 1.1.16
面板构建时间 安装包记录为 2026-09-30 23:22:22
安装包模块标识 repack.json 中 builder-ui 为 3.8.8-backport.1

以下结论针对这次更新后本机安装包中的新版面板,尚未验证其他平台及其他安装包版本。

问题一:Bundle 较多时,整份配置表单校验失败

打开现有支付宝构建任务后,面板提示:

Configuration display failed validation. Reload the panel after updating the plugin. Saving and building from this form are disabled.

配置区无法正常使用,保存和构建被禁用。提示只建议更新插件、重新加载面板,没有指出具体失败字段或体积限制,用户很难判断该修改哪里。

本机排查结果

新版面板使用的协议校验中存在 MAX_BYTES = 65536,按 JSON 序列化后的 UTF-8 字节数限制协议对象大小。

对本项目的表单进行采样,结果如下:

项目 采样结果
表单字段数量 48 个
Bundle 列表条目 127 个
原始表单 JSON 大小 71,201 字节,约 69.5 KiB
协议大小上限 65,536 字节,即 64 KiB
校验拒绝项 form-envelope

其中 Bundle 列表字段约占 34 KB,包含各条目的名称、资源路径备注及编辑操作等信息。项目并没有新增 Bundle,只是更新后改用新版面板,就触发了这项限制。

排查时曾临时精简 Bundle 列表的显示信息:对名称唯一的条目省略完整资源路径备注,并缩短重复的编辑按钮标签,保留全部 127 个 Bundle 及原有选择值、操作标识。表单缩小到 63,619 字节后,采样中的校验拒绝项变为 [],配置能够显示。

这证明精简显示信息能绕过本次体积问题,但项目规模再增长仍可能触发限制。该临时补丁已经撤掉,最终选择使用旧版面板。

复现条件

在本项目中,更新后打开包含 127 个 Bundle、同时注册了自定义构建选项的现有任务即可复现。127 不是已确认的固定阈值,实际是否超限还取决于 Bundle 名称、路径长度以及其他扩展选项的数量和内容。暂未制作独立的最小复现项目。

问题二:自定义构建选项中的资源选择器未适配

将表单压缩到能够通过校验后,“应用配置 JSON”仍显示:

待补齐的控件
This Creator control needs a dedicated interaction adapter
This compound field contains a Creator-specific control

这个字段使用的是 Creator 的 ui-asset 控件,用于选择 cc.JsonAsset。插件中相关配置结构如下,已省略无关字段:

channelConfig: {
    type: 'object',
    label: '构建配置管理',
    default: {
        channelConfigJson: '',
    },
    itemConfigs: {
        channelConfigJson: {
            label: '应用配置 JSON',
            default: '',
            render: {
                ui: 'ui-asset',
                attributes: {
                    type: 'cc.JsonAsset',
                    droppable: 'cc.JsonAsset',
                },
            },
        },
    },
}

另外,“首屏图”字段也使用 ui-asset,资源类型为 cc.SpriteFrame,同样受影响。

本机诊断中,包含这两个资源选择器的配置组被标记为不支持,新版面板无法完成配置控件的适配检查,构建按钮仍被禁用。因此,表单体积超限和资源选择器未适配是两个独立问题,单独解决体积问题还不能恢复新版面板的构建操作。

临时处理:通过插件菜单打开旧版构建面板

本机安装包仍保留 builder.old 面板,可以在编辑器扩展主进程中调用:

Editor.Panel.open('builder.old');

我们在现有插件中增加了“项目 → 打开旧版构建发布”菜单。以下内容合并到插件原有配置即可,保留已有菜单和消息:

package.json 的 contributions 中增加:

{
    "menu": [
        {
            "path": "i18n:menu.project",
            "label": "打开旧版构建发布",
            "message": "open-legacy-builder"
        }
    ],
    "messages": {
        "open-legacy-builder": {
            "methods": ["openLegacyBuilder"]
        }
    }
}

插件主进程入口的 methods 中增加:

exports.methods = {
    // 合并到原有 methods,保留已有方法。
    openLegacyBuilder() {
        return Editor.Panel.open('builder.old');
    },
};

编译并重新加载插件后,已实际点击菜单验证:能够打开旧版构建发布面板,现有构建任务仍在。这个临时方式依赖当前安装包保留旧面板。

希望官方改进的地方

  1. 处理较大项目的表单体积。 Bundle 列表可以按需加载或分页,避免显示信息累计超过整份表单上限后,直接禁用保存和构建。
  2. 补齐现有扩展控件的兼容。 尤其是对象分组中的 ui-asset,以及 cc.JsonAsset、cc.SpriteFrame 等资源选择类型。
  3. 提供明确的旧版入口。 新版控件尚未覆盖原有扩展能力时,希望用户能从菜单直接切回旧面板,继续使用现有项目。
  4. 让错误提示能指导排查。 校验失败时显示具体字段、失败原因和实际大小;控件未适配时明确说明缺失能力,避免只有笼统的“更新插件后重载”。

以上为本机实际遇到的现象及诊断结果。如果需要进一步定位,可以继续提供相关字段声明和采样信息。

1赞