1.先参照Android Studio中创建keystore生成指定的证书文件。
2.在app/build.gradle文件中增加signingConfigs
字段:如下所示:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 |
apply plugin: 'com.android.application' android { compileSdkVersion 21 buildToolsVersion "21.1.0" defaultConfig { applicationId "com.test.example" minSdkVersion 14 targetSdkVersion 21 versionCode 1 versionName "1.0" } signingConfigs { debug { File strFile = new File("../../Keystore/Debug/debug.jks") storeFile file(strFile) storePassword "storeDebug1234567890" keyAlias "debugkey" keyPassword "aliasDebug1234567890" //println strFile.absolutePath; } release { File strFile = new File("../../Keystore/Release/release.jks") storeFile file(strFile) storePassword "storeRelease1234567890" keyPassword "keyRelease1234567890" keyAlias "releasekey" // println strFile.absolutePath; } } buildTypes { release { signingConfig signingConfigs.release runProguard false proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' } } } |
注意
1.storeFile
,storePassword
,keyAlias
,keyPassword
缺一不可,都必须填写,并且填写正确。
如果没有填写keyAlias
,则签名时候会报告Android-APK signing error : Failed to read key from keystore
密码不正确的时候,会报告java.security.UnrecoverableKeyException: Cannot recover key
This exception may result from the fact that you had provided a key password that was different from the keystore password
2.对于Release
配置,在buildTypes
中必须指定
1 |
signingConfig signingConfigs.release |
否则,会出现
1 |
Error: The apk for your currently selected variant(app-release-unsigned.apk) is not signed. please specify a signing configuration for this variant(release) |
3.signingConfigs
必须在buildTypes
前面声明,否则会出现找不到配置选项的错误。
灰常感谢