跳到主要内容

程序发行

使用 JadeView 编写的程序如何打包、保护并分发给最终用户?本文从整体流程出发,介绍三种核心能力:JAPK 资源包、内存载入、NSIS 安装包。


发行流程概览

一个典型的 JadeView 程序发行流程:

  1. 开发完成 → 前端资源(HTML/CSS/JS)和宿主程序(调用 JadeView DLL 的 exe)就绪
  2. 打包前端资源 → 使用 JadePack 或 @electron/asar 将前端项目打包为 JAPK 文件
  3. 保护资源内容 → JadePack 提供混淆和签名保护,防止源码泄露和篡改
  4. 嵌入或分发 JAPK → 可将 JAPK 作为独立文件分发,也可嵌入 exe 通过内存载入
  5. 制作安装包 → JadePack 内置 NSIS 安装包一键打包,生成完整的安装程序

JAPK 资源包

JAPK 是 JadeView 专属的前端资源打包格式,将 HTML、CSS、JavaScript、图片等打包为单个 .japk 文件。

核心优势:

  • 分发简单:只需一个文件,不用传一堆零散文件
  • 加载快速:JadeView 直接从包内读取资源,无需解压到临时目录
  • 兼容 ASAR:完全兼容 Electron ASAR 格式,Electron 生态的包可直接使用

构建方式:

方式内容保护适用场景
@electron/asar(免费)明文,无保护开发调试、内部工具
JadePack 混淆包XOR 混淆,非明文基础保护的分发
JadePack 签名包Ed25519 签名 + AES-256-GCM 加密生产环境、商业分发

详细说明见 JAPK 资源包格式


源码保护

前端资源(JS/CSS/HTML)默认是明文的,直接分发 JAPK 包可能面临源码泄露和篡改风险。JadePack 提供两层保护:

混淆保护

即使不签名,JadePack 也会对打包内容施加 XOR 混淆保护,生成非明文的混淆包。加载时无需公钥,适合基础保护场景。

签名加密

提供 Ed25519 签名 + AES-256-GCM 加密的完整安全方案:

  • 防篡改:签名验证确保包内容未被修改
  • 防伪造:只有持有私钥的人才能构建可验证的签名包
  • 防回退:设置公钥后,签名包加载失败不会回退到混淆包逻辑

生产环境推荐使用签名包。详见 JadePack 构建工具


内存载入

JadeView 支持从内存直接加载 JAPK 包,无需本地文件系统。这意味着你可以将 JAPK 数据嵌入可执行文件中,实现单文件分发。

适用场景:

  • 将 JAPK 嵌入 exe 资源,用户只看到一个可执行文件
  • 从网络下载 JAPK 后直接加载,无需写入磁盘
  • 防止用户直接访问和修改前端资源文件

使用方式:

// 1. 初始化
JadeView_init(1, NULL, NULL, "MyApp", "com.example.app", 0);

// 2. (可选)设置公钥,只接受签名包
JadeView_set_public_key("QeeOu5LQdQooeyOID6h/ChFEo5RhbAFoKgslznp5Nbk=");

// 3. 从内存加载 JAPK
int rc = JadeView_load_from_bytes(japk_data, data_size);

// 4. 获取协议 URL 并创建窗口
char url_buffer[256];
set_protocol_service_path("", url_buffer, sizeof(url_buffer));
create_webview_window(url_buffer, 0, &options, NULL);

完整 API 说明见 从内存载入


NSIS 安装包

JadePack 内置 NSIS 安装包一键打包功能,将应用目录打包为完整的 Windows 安装程序。

功能特点

  • 一键打包:图形界面配置,无需手写 NSIS 脚本
  • WebView2 引导:目标系统未安装 WebView2 时自动引导安装
  • 桌面快捷方式:可选创建桌面快捷方式
  • 自定义图标:支持 .ico 格式应用图标
  • 压缩选项:支持 zip / lzma / solid 三种压缩级别
  • 多语言:安装向导支持简体中文、英语等

配置项

配置项说明
应用目录要打包的应用根目录路径
主程序入口可执行文件(如 MyApp.exe
应用唯一标识符与 JadeView 初始化时参数 5 一致
排除文件打包时排除的文件/文件夹(支持通配符)
应用名称安装后显示的程序名称
应用版本号安装包版本号(如 1.0.5
压缩级别压缩强度,可选 zip / lzma / solid
创建桌面快捷方式是否在用户桌面创建快捷方式
安装方式用户安装时可选择的模式
应用图标安装包和快捷方式图标(.ico 格式)
输出目录生成的安装包输出路径
安装语言安装向导界面语言
WebView2 运行时未安装时的处理方式(在线安装 / 离线安装 / 不处理)
最低版本要求的最低操作系统版本

操作流程

  1. 在 JadePack 构建中心切换到 安装包 标签页
  2. 填写上述配置项
  3. 点击 打包并生成安装包 按钮
  4. 等待打包完成,在输出目录获取 .exe 安装包

推荐发行方案

根据不同场景,推荐以下发行方案:

内部工具 / 原型

前端资源 → @electron/asar 打包 → 明文 JAPK → 随 exe 分发

简单快速,无需额外工具。

面向用户的桌面应用

前端资源 → JadePack 混淆包 → 嵌入 exe 内存载入 → JadePack NSIS 安装包

混淆保护源码,单文件分发,安装包体验。

商业软件

前端资源 → JadePack 签名包 → 嵌入 exe 内存载入 → JadePack NSIS 安装包

签名加密双重保护,防篡改防伪造,专业安装体验。