一、生成签名文件
生成 keystore 签名文件,可以直接通过 AS 生成。
Build–>Generate signed Bundle/APK --> APK --> Create new…

填写配置信息:

设置 keystore 路径、密码,设置key:别名、密码、有效期,证书等。
Key store path:存放路径(文件名和后缀都可以根据需要任意填写)
Key Alias:别名
Validity(years):有效期(一般默认25年)
Certificate:证书
First and Last Name:姓名
Organization Unit:组织单位
Organization:组织
City or Locality:城市或地区
State or Province:州或省
Country Code(XX):国家代码(XX),中国:86
填完相关信息后,点击 OK 。

然后勾选相应信息

点击 finish 后,文件就生成了。
二、配置 gradle
看看 gradle 文件中签名相关配置。
signingConfigs {
release {
storePassword 'aaaaaa'
keyAlias = 'lynn'
keyPassword 'aaaaaa'
//这里的key_lynn.jks 文件是放在了app目录下,可以根据具体文件路径填写
storeFile file('./key_lynn.jks')
}
}
buildTypes {
release {
zipAlignEnabled true
minifyEnabled true
shrinkResources true // 自动清理无用资源
proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
signingConfig signingConfigs.release
}
debug {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
signingConfig signingConfigs.debug
}
}
到这一步,签名信息基本是配置好了,可以编译一下是否成功。
gradlew assembleRelease
三、配置外部签名文件
前面的步骤下来,配置的签名密码什么的写死在 build.gradle 文件中,如果直接上传到服务器,可能会导致密码泄露,更严重的是别人可以拿到你的签名文件重新打包你的应用发布。
那么,有没有办法可以把签名信息隐藏起来呢?
可以通过把签名信息存到本地来解决此问题。
1. 新建配置文件
可以在根目录下新建配置文件 signing.properties。
然后在 .gitignore 文件中配置忽略此文件的提交。
/signing.properties
然后在 signing.properties 文件填写签名的信息。
RELEASE_STORE_FILE=../app/key_lynn.jks
RELEASE_STORE_PASSWORD=aaaaaa
RELEASE_KEY_PASSWORD=aaaaaa
RELEASE_KEY_ALIAS=lynn
当然,这里其实可以直接使用 local.properties,不用额外新建 signing.properties 文件,后面的例子也是直接使用 local.properties。
2. 配置加载配置文件信息
接着,需要在 ./app/build.gradle 中导入文件中的签名信息。
Properties properties = new Properties()
properties.load(project.rootProject.file('local.properties').newDataInputStream())
def keystorePassword = properties.getProperty("RELEASE_STORE_PASSWORD")
def keystoreAlias = properties.getProperty("RELEASE_KEY_ALIAS")
def keystoreAliasPassword = properties.getProperty("RELEASE_KEY_PASSWORD")
def keyFile = file(properties.getProperty("RELEASE_STORE_FILE"))
修改 signingConfigs :
signingConfigs {
release {
storePassword keystorePassword
keyAlias = keystoreAlias
keyPassword keystoreAliasPassword
storeFile keyFile
}
}
到此,整个配置就完成了,赶快编译一下是否成功吧。
gradlew assembleRelease
本文详细介绍了如何在Android应用开发中生成签名文件,并通过AS进行配置。包括创建keystore签名文件、设置有效期和证书信息,以及在gradle文件中配置签名信息,确保应用的安全发布。

7736

被折叠的 条评论
为什么被折叠?



