# 22 构建、签名、核验与GitHub发布流程 听文视频工作台 · 技术架构与实现 · 1.0.2 图示:源码与工具链到签名发布 源码与工具链到签名发布 版本化业务源码 Java/Python/HTML/测试 精确原生源归档 FFmpeg/x264/Pillow兼容库 Gradle+Chaquopy构建 SDK36 · Java17 · CPython3.11 NDK构建与ELF核验 ABI/16KB LOAD/符号 原签名release APK 包名与code · 禁止私钥入库 内容/签名/ZIP16KB 45资源+4媒体程序+Python归档 桌面交付APK SHA256与构建一致 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核验顺序 - aapt读取applicationId、versionName/code、应用标签与Manifest provider。 - apksigner验证实际签名,核对原证书公开指纹。 - zipalign -c -P 16 4核对ZIP对齐;另执行原生ELF/符号检查。 - 解包比较45项资源与最终源文件、4个ABI媒体程序及Python归档业务;正式版检查无trial_limits,试用版检查额度常量与专属路由。 - 保存SHA256和实际字节数,再复制桌面、比对桌面与构建完全一致。 - 完成源/文档归档,排除jks、密码、Key、用户任务、草稿、ledger、日志及缓存;不重写原Git历史。 - 推main,Release指定已验证源码提交,上传ASCII文件名APK、SHA256SUMS与验证JSON。 - 用GitHubAPI核对Release非draft、目标提交、附件uploaded和服务端SHA256与桌面一致;正式版作为latest,试用版独立发布。 ## 本次实际产物 版本 | 文件/Release下载 | 字节数 | SHA256 | 正式 | tingwen-android-v1.0.2.apk | 44,472,826 | aaa415bd54c1d48c3fd67099d12e37ca240ba4814fb60b7e2e2273182bd53b9a | 试用 | tingwen-android-trial-v1.0.2.apk | 44,492,954 | 0357aa2c91858797e2f87ef426a324b33fb00795c602d2295d7b9e1b5b3dbab1 | 公开证书SHA256为88184f3d44642ff29c1dba48018fa123ba8d2dcded94d83b6ad26e67a1a865f7,RSA3072,APK v2核验通过。该指纹不是私钥;它可帮助判断是否沿用原发布身份。同一应用覆盖升级须保持包名/密钥并提高versionCode。 项目GitHub为私有仓库;版本源码和附件链接需对应权限。本轮源归档不含用户作品或敏感运行资料,APK仅包含产品资源和代码。正式/试用独立包可并存;两者同code10002不相互覆盖。 --- 招商合作微信:wzqy2019。添加备注:听文合作。 原网页:https://tingwen-creator-studio-102.pages.dev/guide/technical-22