2023年11月25日发(作者:)

AndroidAPK签名JKS密钥库使⽤专⽤格式。建议使⽤“keytool-

importk。。。

Android Studio中进⾏签名

转载地址:

如果急可以从中间位置的:解决办法 开始看

⽼版本签名:

⾸先点击Android Studio 的菜单栏下的build⽬录下的Generate signed APK

然后创建Keystore⽂件

按要求填好信息后,点击OK(记住所填的密码后⾯将会⽤到)

接下来将设置Keystore的存放路径及命名⽂件名称,该⽂件后缀默认为jks。点击OK。

填写之前设置的密码,点击Next,⽣成带签名的apk

选择build Type为release,点击finish。

这个是⽼版本的到这⾥基本就已经完成了,

但是现在最新的需要密钥专⽤格式,

这么做就会⽣成签名失败。报错:

JKS 密钥库使⽤专⽤格式。建议使⽤ "keytool -importkeystore -srckeystore E:xxxxxx-

错误:

Key was created with errors:

Warning:

JKS 密钥库使⽤专⽤格式。建议使⽤ "keytool -importkeystore -srckeystore

E:androidstudioandroidstudio_workCommonDemoappfast_ -destkeystore

E:androidstudioandroidstudio_workCommonDemoappfast_ -deststoretype pkcs12"

迁移到⾏业标准格式 PKCS12

解决办法:

在控制台输⼊下⾯字段

复制更改(keystore路径⾃⾏更改,下⾯这条命令复制⼀下在记事本或者聊天窗⼝编辑⼀下再复制,不然会出现多余的作者信息,望周知~!):

keytool -genkey -alias testalias -keypass 123456 -keyalg RSA -keysize 2048 -validity 36500 -keystore

E:androidstudioandroidstudio_re -storepass 123456

这⾥注意 keystore的输出路径+keystore名称, 如果只是路径会报错误,我在这⾥被坑了⼀个多⼩时,就因为少些了⼀个keystore名

称,所以特意记录⼀下

上⾯的命令应该不难理解,就是你给密钥⽂件设置的⽣成位置,key aliaskey passwordkey store password,回车后,需要继续按照提

⽰输⼊相关信息,依次填写好信息后,输⼊ Y 确认信息即可。

⽤指令创建key时给出的提⽰是这个:

把这段建议使⽤的代码复制在下⾯执⾏就好了,注意:这段代码如果有换⾏⼀定不能直接复制粘贴,有换⾏⼀定不能直接复制粘贴,有换⾏

也可以复制下⾯的代码修改签名KEY⽂件路径:

keytool -importkeystore -srckeystore E:workspaceAndroidAndroidkey_re -destkeystore E:workspaceAndroidAndroidkey_re -d

执⾏后是下⾯这样

填写完成点击应⽤、OK后会在 Module:app ()⽣成代码:

到这⾥如果发现打包的release版本的APK安装到⼿机失败不要着急,咱⼀步⼀步来

因 apksigner 签名⼯具⽀持V1和V2签名,所以选⽤它 进⾏⼿动签名:

步骤如下:

切到Android SDK/build-tools/SDK版本, 输⼊命令

apksigner sign --ks 密钥库名 --ks-key-alias 密钥别名

若密钥库中有多个密钥对,则必须指定密钥别名

apksigner sign --ks 密钥库名 --ks-key-alias 密钥别名

禁⽤V2签名

apksigner sign --v2-signing-enabled false --ks 密钥库名

参数:

--ks-key-alias 密钥别名,若密钥库有⼀个密钥对,则可省略,反之必选

--v1-signing-enabled 是否开启V1签名,默认开启

--v2-signing-enabled 是否开启V2签名,默认开启

签名命令如下:

re密钥库只有⼀个密钥对

apksigner sign --ks re

re密钥库中有多个密钥对,所以必须指定密钥别名

apksigner sign --ks re --ks-key-alias androiddebugkey

好了到这⾥就基本完成了。

参考资料:

Android Studio中进⾏签名打包

JKS 密钥库使⽤专⽤格式。建议使⽤ "keytool -importkeystore -srckeystore E:xxxxxx-

pkcs12" 迁移到⾏业标准格式PKCS12