You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

NWJS从0.37.3升级至0.56.0后丢失Google App ID的解决方案咨询

解决方案

方法1:保留原有chrome.runtime.id

NWJS 0.40+版本调整了应用ID的生成规则,原有仅在manifest中配置key的方式需要配合签名打包才可生效:

  • 准备好生成原有key对应的私钥文件(.pem格式),该文件是你最初生成Chrome应用密钥时的对应私钥,和manifest里的公钥是配对关系
  • 打包时给nw-builder添加--crx-key参数指定私钥路径,示例命令:
nwbuild --crx-key ./your-private-key.pem .
  • 确认manifest中key字段值和旧版本完全一致,无多余换行、空格或转义字符,完成以上操作后生成的应用就会沿用原有chrome.runtime.id。

方法2:强制指定用户数据目录(最稳妥,无需修改ID)

如果不想处理签名逻辑,可以直接固定应用的用户数据存储路径,只要路径和旧版本一致,所有本地文件、数据库、设置都不会丢失,和ID是否变化无关:

  • 修改manifest中的chromium-args配置,追加--user-data-dir参数,示例:
"chromium-args": "--ignore-certificate-errors --user-data-dir=\"<旧版本数据存储路径>\""

各系统默认旧版数据存储路径:

  • Windows:C:\Users\<用户名>\AppData\Local\<旧应用名称>
  • macOS:~/Library/Application Support/<旧应用名称>
  • Linux:~/.config/<旧应用名称>
    你也可以通过NWJS的Node.js API动态获取系统默认路径,适配不同用户的设备环境。

备选迁移方案

如果上述两种方法都无法直接适配,你可以利用nodejs: true的权限,在新版应用第一次启动时,主动读取旧版数据目录的所有内容,复制写入到新版应用的默认数据目录中,完成数据迁移后再启动业务逻辑。

内容的提问来源于stack exchange,提问作者Fabiano Taioli

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.05 15:27:03