用途:为 Android 项目的 release 构建配置签名,采用双来源凭据策略——环境变量用于 CI/CD,gradle.properties 用于本地开发。
前提条件:keystores/ 目录中已存在密钥库(需先运行 android-keystore-generation);项目使用 Gradle 与 Kotlin DSL(build.gradle.kts)。输入参数 project_path 为项目根目录,默认 .。
主要流程:
- 检测并选择环境变量前缀,避免与其他项目冲突。可从 settings.gradle.kts 自动检测项目名,或选择通用前缀 APP,或自定义。
- 在 app/build.gradle.kts 中添加 signingConfigs.release,按“环境变量优先于 gradle.properties”的顺序读取密钥库路径、store 密码、别名与 key 密码;release buildType 引用该签名配置;仅在构建 release 变体时校验签名配置,缺失则抛出 GradleException。
- 更新 .gitignore,忽略 gradle.properties。
- 经用户许可后,将本地开发凭据写入 ~/.gradle/gradle.properties(使用所选前缀)。
验证:运行 ./gradlew assembleRelease,确认 APK 生成,并用 apksigner verify --verbose 检查 v2/v3 签名方案。
输出:app/build.gradle.kts 中的签名配置,以及 ~/.gradle/gradle.properties 中的本地凭据。
限制与注意:修改全局 gradle.properties 前必须征得用户同意;PKCS12 密钥库的 storePassword 与 keyPassword 必须一致;不修改 ProGuard 设置(由其他技能处理)。常见问题包括签名配置未找到、密钥库路径错误、apksigner 验证失败等。