技术 / 架构与实现

22 构建、签名、核验与GitHub发布流程

基于 Android 1.0.2 / 1.0.2-trial · 2026-10-10 · 完整正文
源码与工具链到签名发布源码与工具链到签名发布版本化业务源码Java/Python/HTML/测试精确原生源归档FFmpeg/x264/Pillow兼容库Gradle+Chaquopy构建SDK36 · Java17 · CPython3.11NDK构建与ELF核验ABI/16KB LOAD/符号原签名release APK包名与code · 禁止私钥入库内容/签名/ZIP16KB45资源+4媒体程序+Python归档桌面交付APKSHA256与构建一致GitHub源码与Release源提交/附件digest一致
图10|可审计的构建发布链。原生ELF、APK ZIP、签名和资源一致性分别核验;只有核验后的APK发布并与桌面/远端摘要比对。小屏可横向滚动查看图示

环境与输入

需要JDK17、Android SDK compile36、对应NDK、Python3.11、Gradle8.13。重建原生媒体还需Bash/make/tar/Perl,Pillow兼容库需要相应CMake。已有原生输出时可以只构建APK;全新环境的AGP/Gradle/Python依赖需缓存或仓库访问,只有保留原生源归档部分明确支持无网络重建,不能声称整APK在任意空环境离线构建。

APK release构建需要原签名文件和安全提供的TINGWEN_SIGNING_PASSWORD。脚本若缺原签名或密码会直接失败,不随意创建新密钥替换;该密钥未上传GitHub。调试构建使用调试签名,不可覆盖原正式发布。

可复核的构建步骤

# 从相应Android工程根目录执行,路径按实际环境提供
export ANDROID_SDK_ROOT=/path/to/android/sdk
export ANDROID_NDK_HOME=/path/to/android/ndk/28.2.13676358
export TINGWEN_NDK_ROOT="$ANDROID_NDK_HOME"
export TINGWEN_CMAKE_BIN="$ANDROID_SDK_ROOT/cmake/3.22.1/bin/cmake"
bash scripts/build-media.sh
bash scripts/build-pillow-libs.sh
python3 native-compat/verify_libraries.py

# 原签名及密码由维护人员安全恢复,本文不展示密钥值
bash scripts/build-apk.sh release

以上重建脚本按当前工程保留的macOS工具链路径编写;Linux/Windows不能仅改环境变量便假定原生重建可用,需要适配对应NDK host路径。build-pillow-libs读取TINGWEN_NDK_ROOT及ANDROID_SDK_ROOT/ANDROID_HOME,CMake可由TINGWEN_CMAKE_BIN指定。build-apk选择环境TINGWEN_JAVA_HOME或保留Zulu工具链,设置项目Gradle缓存;存在保留Gradle则使用,否则wrapper。release执行assembleRelease,debug执行assembleDebug及assembleDebugAndroidTest。产物默认在app/build/outputs/apk/release/app-release.apk;脚本本身不自动复制到dist、桌面或GitHub。

APK核验顺序

  1. aapt读取applicationId、versionName/code、应用标签与Manifest provider。
  2. apksigner验证实际签名,核对原证书公开指纹。
  3. zipalign -c -P 16 4核对ZIP对齐;另执行原生ELF/符号检查。
  4. 解包比较45项资源与最终源文件、4个ABI媒体程序及Python归档业务;正式版检查无trial_limits,试用版检查额度常量与专属路由。
  5. 保存SHA256和实际字节数,再复制桌面、比对桌面与构建完全一致。
  6. 完成源/文档归档,排除jks、密码、Key、用户任务、草稿、ledger、日志及缓存;不重写原Git历史。
  7. 推main,Release指定已验证源码提交,上传ASCII文件名APK、SHA256SUMS与验证JSON。
  8. 用GitHubAPI核对Release非draft、目标提交、附件uploaded和服务端SHA256与桌面一致;正式版作为latest,试用版独立发布。

本次实际产物

版本文件/Release下载字节数SHA256
正式tingwen-android-v1.0.2.apk44,472,826aaa415bd54c1d48c3fd67099d12e37ca240ba4814fb60b7e2e2273182bd53b9a
试用tingwen-android-trial-v1.0.2.apk44,492,9540357aa2c91858797e2f87ef426a324b33fb00795c602d2295d7b9e1b5b3dbab1

公开证书SHA256为88184f3d44642ff29c1dba48018fa123ba8d2dcded94d83b6ad26e67a1a865f7,RSA3072,APK v2核验通过。该指纹不是私钥;它可帮助判断是否沿用原发布身份。同一应用覆盖升级须保持包名/密钥并提高versionCode。

项目GitHub为私有仓库;版本源码和附件链接需对应权限。本轮源归档不含用户作品或敏感运行资料,APK仅包含产品资源和代码。正式/试用独立包可并存;两者同code10002不相互覆盖。

把这些功能用到你的内容里。

免费试用、正式版优惠授权与招商合作:微信 wzqy2019。说明你需要配音、照片视频、PC或Android端,我们一起确定适合的使用方式。

合作从一次沟通开始

让你的内容制作,
找到合适的工作台。

免费试用、优惠授权、PC与Android版本、工作室及渠道合作意向,欢迎直接咨询。

打开微信,搜索 wzqy2019,添加时备注“听文合作”。具体授权、价格与合作政策以沟通为准;本站不收款。