Android Studio中进行签名
转载地址:Android APK签名 JKS 密钥库使用专用格式。建议使用 “keytool -importkeystore -srckeystore E:\xxxxxx- pkcs12“ 迁移到行业标准格式_xkai007的博客-CSDN博客
如果急可以从中间位置的:解决办法 开始看
老版本签名:
首先点击Android Studio 的菜单栏下的build目录下的Generate signed APK
然后创建Keystore文件
按要求填好信息后,点击OK(记住所填的密码后面将会用到)
接下来将设置Keystore的存放路径及命名文件名称,该文件后缀默认为jks。点击OK。
填写之前设置的密码,点击Next,生成带签名的apk
选择build Type为release,点击finish。
这个是老版本的到这里基本就已经完成了,
但是现在最新的需要密钥专用格式,
这么做就会生成签名失败。报错:
JKS 密钥库使用专用格式。建议使用 "keytool -importkeystore -srckeystore E:\xxxxxx- pkcs12" 迁移到行业标准格式PKCS12
错误:
Key was created with errors:Warning:JKS 密钥库使用专用格式。建议使用 "keytool -importkeystore -srckeystoreE:\androidstudio\androidstudio_work\CommonDemo\app\fast_keystore.jks -destkeystoreE:\androidstudio\androidstudio_work\CommonDemo\app\fast_keystore.jks -deststoretype pkcs12"迁移到行业标准格式 PKCS12。
解决办法:
在控制台输入下面字段
复制更改(keystore路径自行更改,下面这条命令复制一下在记事本或者聊天窗口编辑一下再复制,不然会出现多余的作者信息,望周知~!):
keytool -genkey -alias testalias -keypass 123456 -keyalg RSA -keysize 2048 -validity 36500 -keystore E:\androidstudio\androidstudio_work\CommonDemo\app\test.keystore -storepass 123456
这里注意keystore的输出路径+keystore名称,如果只是路径会报错误,我在这里被坑了一个多小时,就因为少些了一个keystore名称,所以特意记录一下
上面的命令应该不难理解,就是你给密钥文件设置的生成位置,key alias
、key password
和key store password
,回车后,需要继续按照提示输入相关信息,依次填写好信息后,输入Y
确认信息即可。
用指令创建key时给出的提示是这个:
把这段建议使用的代码复制在下面执行就好了,注意:这段代码如果有换行一定不能直接复制粘贴,有换行一定不能直接复制粘贴,有换行一定不能直接复制粘贴,重要的事情说三遍,如果有换行会把换行也直接复制了,在粘贴的时候会直接执行到换行的位置,后面的就不执行了,建议复制后在电脑记事本粘贴后在复制粘贴执行代码,
也可以复制下面的代码修改签名KEY文件路径:
keytool -importkeystore -srckeystore E:\workspace\Android\Android\key_store.keystore -destkeystore E:\workspace\Android\Android\key_store.keystore -deststoretype pkcs12
执行后是下面这样
输入完成后经过转过的key就会生成,原来的key自动会有一个old的后缀
这个时候用这个新生成的key打包就可以了(当然不转换直接使用老的key也可以,不过这么一转换,好像key的使用时间也变长了)。
查看自己填写的keystore文件路径,已经生成对应的keystore文件.
在签名的时候直接按照路径选择刚才生成的keysotre文件就行了
查看密钥详细输出信息
输入如下命令:
keytool -list -v -keystore E:\androidstudio\androidstudio_work\CommonDemo\app\test.keystore
到这里我们就知道了怎么使用 keytool 命令来生成 jks 后缀或者是 keystore 后缀的密钥文件。
接下来我们让项目每次都能自动签名打包
首先把签名文件(keystore )放到项目的根目录,在Android studio 右击项目选择Open module settings
填写完成点击应用、OK后会在 Module:app (build.gradle)生成代码:
到这里如果发现打包的release版本的APK安装到手机失败不要着急,咱一步一步来
因 apksigner 签名工具支持V1和V2签名,所以选用它 进行手动签名:
步骤如下:
切到Android SDK/build-tools/SDK版本, 输入命令apksigner sign --ks 密钥库名 --ks-key-alias 密钥别名 xxx.apk若密钥库中有多个密钥对,则必须指定密钥别名apksigner sign --ks 密钥库名 --ks-key-alias 密钥别名 xxx.apk禁用V2签名apksigner sign --v2-signing-enabled false --ks 密钥库名 xxx.apk参数:--ks-key-alias 密钥别名,若密钥库有一个密钥对,则可省略,反之必选--v1-signing-enabled 是否开启V1签名,默认开启--v2-signing-enabled 是否开启V2签名,默认开启
签名命令如下:
在debug.keystore密钥库只有一个密钥对apksigner sign --ks debug.keystore MyApp.apk在debug.keystore密钥库中有多个密钥对,所以必须指定密钥别名apksigner sign --ks debug.keystore --ks-key-alias androiddebugkey MyApp.apk
好了到这里就基本完成了。
参考资料:
Android Studio中进行签名打包
Android Studio 打包签名教程 - 谦信君 - 博客园
JKS 密钥库使用专用格式。建议使用 "keytool -importkeystore -srckeystore E:\xxxxxx- pkcs12" 迁移到行业标准格式PKCS12
Warning:JKS 密钥库使用专用格式。建议使用 "keytool -importkeystore -srckeystore...pkcs12" 迁移到行业标准格式 PKCS12_邹奇健身已上瘾-CSDN博客_jks 密钥库使用专用格式
JKS 密钥库使用专用格式。建议使用 "keytool -importkeystore -srckeystore E:\xxxxxx- pkcs12" 迁移到行业标准格式PKCS12_RunByAndroid的博客-CSDN博客_jks密钥库使用专用格式
对Android apk 签名 --apksigner_GerryRun的博客-CSDN博客_android apk签名
Android APK签名 JKS 密钥库使用专用格式。建议使用 “keytool -importkeystore -srckeystore E:\xxxxxx- pkcs12“ 迁移到行业标准格式