Android 项目 构建 签名
文档
源码
配置
app/build.gradle.kts
import java.io.FileInputStream
import java.util.Properties
android {
signingConfigs {
create("release") {
val keystorePropertiesFile = rootProject.file("keystore.properties")
if (keystorePropertiesFile.exists()) {
val keystoreProperties = Properties()
keystoreProperties.load(FileInputStream(keystorePropertiesFile))
storeFile = file(keystoreProperties["storeFile"] as String)
keyAlias = keystoreProperties["keyAlias"] as String
storePassword = keystoreProperties["storePassword"] as String
keyPassword = keystoreProperties["keyPassword"] as String
}
}
}
buildTypes {
release {
val keystorePropertiesFile = rootProject.file("keystore.properties")
if (keystorePropertiesFile.exists()) {
signingConfig = signingConfigs.getByName("release")
} else {
System.err.printf("1. 证书配置文件 keystore.properties 不存在。\n")
System.err.printf("2. 使用本机默认签名(不推荐)。\n")
System.err.printf("3. 参考 README.md 创建证书。\n")
System.err.printf("4. 参考 keystore.properties.template 配置证书签名。\n")
}
}
}
}
keystore.properties
storeFile=../xuxiaowei.keystore
keyAlias=xxx
storePassword=xxx
keyPassword=xxx
.gitignore
# GitLab CI/CD 使用的文件夹
android-sdk-root
# 敏感文件
xuxiaowei.keystore
xuxiaowei.keystore.txt
xuxiaowei_restored.keystore
keystore.properties
构建
- 没有配置
keystore.properties 文件进行打包时,仅能得到 app/build/outputs/apk/release/app-release-unsigned.apk
- 正确配置
keystore.properties 文件进行打包时,能得到 app/build/outputs/apk/release/app-release.apk