Simprint Browser Packager 是一个小型打包工具,用于从 Chromium 风格的构建目录中收集 Simprint 浏览器构建产物,并将它们整理为可分发的 ZIP 压缩包。
它主要面向本地发版准备、浏览器运行时分发以及内部构建校验等场景,适合那些希望保留 Chromium 版本目录约定、而不是再套一层自定义安装器格式的发布流程。
浏览器构建输出通常并不适合直接分发。发布目录中往往包含版本目录、运行时 DLL、语言资源以及 Chromium 约定的一些目录结构要求,这些内容如果手工整理,既容易漏文件,也很难保证结构长期一致。
Simprint Browser Packager 的作用,就是把这件事变成可重复执行的流程。它不会依赖人工维护一份独立的拷贝清单,而是直接读取 chrome.release,按指定段落解析需要打包的文件,保留预期目录结构,并生成一个可校验、可稳定解压的 ZIP 产物。
- 基于
chrome.release打包:直接复用 Chromium 风格的发布文件清单,而不是维护额外的人工复制列表。 - 带版本号的输出文件名:从
chrome/VERSION读取版本,并生成如simprint-browser-146.0.7660.0.zip的产物名。 - 可控制的 ZIP 目录结构:可保留顶层目录,也可按部署需要将压缩包根目录扁平化。
- 补齐运行时必要文件:在打包过程中纳入关键运行时 DLL、语言资源和版本清单,减少解压后无法启动的问题。
- 自动生成版本 manifest:当构建产物中缺少
<version>.manifest时,自动生成最小可用 manifest。 - 输出产物校验信息:打包结束后打印压缩包大小和 SHA-256,便于记录和接入发布流程。
- Python 3.11+
uv- 一份 Simprint / Chromium 源码目录,且其中包含:
chrome/VERSION- 如
out/Release这样的构建输出目录 - 如
chrome/installer/mini_installer/chrome.release这样的发布文件清单
可在仓库根目录执行,也可在任何你希望输出 ZIP 产物的工作目录中执行:
uv tool run --from git+https://github.com/Simprint/simprint-browser-packager.git \
simprint-browser-pack示例:
uv tool run --from git+https://github.com/Simprint/simprint-browser-packager.git \
simprint-browser-pack \
--chromium-root <browser-source-root> \
--build-dir out/Release \
--release-file chrome/installer/mini_installer/chrome.release \
--executable-name simprint \
--output-prefix dist/simprint-browser常用参数:
--chromium-root PATH:Chromium 或 Simprint 源码根目录。--build-dir PATH:覆盖BUILD_DIR。--release-file PATH:覆盖 release 文件路径。-o, --output PATH:显式指定 ZIP 输出路径,此时不再自动追加版本后缀。--executable-name NAME:覆盖可执行文件名。--package-dir NAME:覆盖 ZIP 顶层目录名。--output-prefix PREFIX:覆盖默认输出文件名前缀。--flatten-zip/--no-flatten-zip:控制是否扁平化 ZIP 根目录。--sections GENERAL,HIDPI,FFMPEG:覆盖 release 段落。-v, --verbose:打印所有写入 ZIP 的文件路径。
- 默认输出文件名格式为
{OUTPUT_PREFIX}-{version}.zip。 - 当
FLATTEN_ZIP=false时,ZIP 会保留PACKAGE_DIR/顶层目录。 - 当
FLATTEN_ZIP=true时,ZIP 根目录直接包含可执行文件和版本目录。 - 打包完成后,CLI 会额外输出:
archive file_sizearchive sha256
为了保证解压后可以正常启动,可执行文件与版本目录必须保持同级;版本目录中也必须保留所需 manifest、DLL 和语言资源文件。
Simprint Browser Packager 目前正在跟随 Simprint 整体开源重构工作逐步整理。
当前仓库已经可以用于内部打包和发版准备,但围绕文档、发布约定以及跨仓库集成的部分内容,仍在持续清理和补齐。
欢迎提交 Issue 和 Pull Request。
当前更有价值的贡献方向包括:
- 适配不同 Chromium 构建目录布局下的打包正确性
- 缺失运行时文件或 release 段落时的诊断信息改进
- 围绕 ZIP 产物与校验信息的发布自动化
- 浏览器构建、打包与分发流程相关文档完善
本项目采用 GNU Affero General Public License v3.0 (AGPLv3) 进行许可。