Skip to main content
只运行 Gradle 不会生成缺失的 jniLibs;首次构建请先完成原生构建.
YumeBox 本地与 CI 构建链路

环境要求

当前应用只构建 arm64-v8a,对应 Rust target 为 aarch64-linux-android.

准备仓库

1

获取源码

2

配置 Android SDK

安装 API 37、NDK 30.0.14904198 和 CMake 3.22.1,然后在仓库根目录创建 local.properties
NDK 会根据 gradle.properties 中的 android.ndkVersion 自动定位.
3

准备 Go 与 Rust

构建 Go 核心前,还需要将 .github/patch/ 中的补丁应用到 go env GOROOT.CI 会在构建原生组件前自动执行这一步.在 Git Bash 或 WSL 中执行:
4

同步 mihomo

选择一个内核通道.默认使用 Alpha:
也可以使用 Meta:

构建原生组件

完整构建

完整构建会生成所有原生库,并下载 Geo 数据:

按组件构建

本机调试可只构建当前 ABI:
构建成功后,jniLibs/arm64-v8a/ 应包含: Geo 数据位于 build/generated/assets/geo/

构建 APK

Debug

Debug 适合本地安装和调试:

Release

Release 会启用压缩和资源收缩:

Geo 数据变体

两种变体使用相同的应用代码和内核;差异只在 Geo 资源是否打包进 APK. APK 默认输出到:
本地构建通常生成 YumeBox-external.apkYumeBox-builtin.apk.实际文件名以输出目录为准.

Release 签名

本地验证可以不配置正式签名;发布 APK 需要仓库根目录中的 release.keystoresigning.properties
不要提交 release.keystoresigning.properties.

CI 构建

CI 使用 arm64-v8a,并通过 build.numberbuild.hashbuild.branch 写入构建版本信息.

验证安装

如果文件名不同,先查看 app/build/outputs/apk/ 中的实际产物.

常见问题

更多构建错误请查看常见问题.
最后修改于 2026年8月24日