标签:white 不同的 pac 发布 生成 name project 签名配置 default
当应用要发布release版本时,如果没有签名文件是不能安装到设备上的,所以在打包release版本的apk之前,要添加签名文件。
按照Build->Generate Signed APK打开生成签名文件的窗口。
点击Create New Store按钮之后,会打开一个New Key Store窗口:
填写完之后点击OK按钮,返回到Generate Singed Apk窗口,窗口中的内容已经全部填充
点击Choose existing store按钮之后,在弹出的文件选择框中选择已有签名文件即可。填写完ey store password、Key alias、Key password点击Next按钮即可。
点击Generate Singed Apk窗口的Next按钮之后,界面显示如下:
这个界面我们只需要选择Signature Version。
勾选不同的结果:
最后点击Finish按钮之后,签名文件就生成了。
使用命令生成签名文件。
代码运行过程如图:
输入keytool -genkey -alias test.keystore -keyalg RSA -validity 10000 -keystore test.keystore
其中 test.keystore表示签名文件的文件名;10000表示App的有效期;RSA代表认证机构。
按回车之后就会让你输入各种信息,输入这些信息之后再按回车,签名文件就生成好了,你在哪个目录下运行的指令,签名文件就在哪个目录下。
在使用Android Studio进行release版的apk签名的时候,往往都是将签名文件keystore放在项目中,密码写在build.gradle中,keystore和密码就随着代码上传到了git仓库中了,这样往往很不安全,因为这样被人获取。
修改之前的app中的build.gradle签名配置:
android {
compileSdkVersion 23
buildToolsVersion "24.0.2"
signingConfigs {
release {
keyAlias ‘abc‘
keyPassword ‘123456‘
storeFile file("${projectDir}/keystore.key")
storePassword ‘123456‘
}
}
buildTypes {
release {
minifyEnabled true
zipAlignEnabled true
signingConfig signingConfigs.release
proguardFiles getDefaultProguardFile(‘proguard-android.txt‘), ‘proguard-rules.pro‘
buildConfigField "boolean", "ENV_SETTING", "true"
buildConfigField "boolean", "RELEASED_TEST", "false"
resValue "string", "app_name", "应用名称"
}
}
}
keystore.properties
keystore=F:\\keystore.key
storePassword=123456
keyAlias=rbsoft
keyPassword=123456
apply plugin: ‘com.android.application‘
def keystorePropertiesFile = rootProject.file("keystore.properties")
def keystoreProperties = new Properties()
keystoreProperties.load(new FileInputStream(keystorePropertiesFile))
android {
compileSdkVersion 23
buildToolsVersion "24.0.2"
signingConfigs {
release {
keyAlias keystoreProperties[‘keyAlias‘]
keyPassword keystoreProperties[‘keyPassword‘]
storeFile file("${projectDir}/keystore.key")
storePassword keystoreProperties[‘storePassword‘]
}
}
buildTypes {
release {
minifyEnabled true
zipAlignEnabled true
signingConfig signingConfigs.release
proguardFiles getDefaultProguardFile(‘proguard-android.txt‘), ‘proguard-rules.pro‘
buildConfigField "boolean", "ENV_SETTING", "true"
buildConfigField "boolean", "RELEASED_TEST", "false"
resValue "string", "app_name", "应用名称"
}
}
将keystore.properties添加到忽略中,这样就不上传keystore.properties文件到git仓库,使得签名的铭感信息与上传到git仓库隔离开,这样签名信息就安全了。
.gitignore
...
/sign.properties
这篇文章主要说的是关于签名文件的,应用在打包的时候就需要生成一个签名文件,也要注意对签名文件的安全管理。
标签:white 不同的 pac 发布 生成 name project 签名配置 default
原文地址:https://www.cnblogs.com/zhangmiao14/p/9308825.html