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 toread key from keystore
密码不正确的时候,会报告 java.security.UnrecoverableKeyException: Cannot recoverkeyThis exception may result from the fact that you had provided a key password that wasdifferent 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前面声明,否则会出现找不到配置选项的错误。