安卓使用v1签名,V2签名,加固后二次签名
文章目录1.如何打包带签名的apk2.加固后怎么打包2.1 v1签名加固后的apk2.2 v2签名加固后的apk最近因为产品上线,需要对写好的安卓app进行打包签名,而签名的方式有三种,分别是V1,V2,V3,这句当我没说。这里来记录下一下怎么使用V1.V2方式对app进行签名。1.如何打包带签名的apk在AS的顶部导航栏找到build,找到generate signed bundle/APK选择
最近因为产品上线,需要对写好的安卓app进行打包签名,而签名的方式有三种,分别是V1,V2,V3,这句当我没说。这里来记录下一下怎么使用V1.V2方式对app进行签名。
1.如何打包带签名的apk
在AS的顶部导航栏找到build,找到generate signed bundle/APK
选择APK,点击下一步
然后自行配置证书文件和证书密码。配置完成后下一步。
如上图所示,即可勾选V1或者V2签名方式,当然也可以同时勾选。
点finish完成即可打包对应的带签名证书的安装包了。
当然还有另一种方式进行配置,无需每一次都通过这种过程去进行打包。
配置gradle,在app对应的build.gradle里面新增签名配置属性。
signingConfigs {
signConfig {
storeFile file('../yourname.jks') 证书存放位置和名字
storePassword 'yourpwd' 密码
keyAlias 'youralias' 别名
keyPassword 'your aliaspwd' 别名对应的密码
}
release {
v1SigningEnabled false //正式版时对应的签名规则 true使用 false不适用
v2SigningEnabled true
}
}
然后点击右侧的gradle插件进行打包,这时就会读取配置文件进行后台打包了。
2.加固后怎么打包
通常我们需要对apk进行三方加固才正式上线,哪怕没什么用。具体加固方式就不介绍了,每个平台都不太一样。不得不提一下,360是最简单的。
2.1 v1签名加固后的apk
要重新签名加固好的apk,这里需要使用java jdk的jarsigner工具进行重签名。
具体步骤为:
1.将要加固的apk和证书文件存放同一目录,方便使用。
2.然后使用命令行工具定位到当前目录下
jarsigner -verbose -keystore secretkey.jks -signedjar output.apk input.apk key0
verbose 为参数的详细名称
keystore 是你签名的名称
signedjar 是你想要签名的APK output.apk 是成功签名后的, input.apk是你准备签名的APK
secretkey.jks 是证书文件
key0 是你自己签名的别称,默认为key0
然后就是正常运行了。如果jarsigner无法识别的话,可以将其加入到环境变量之中,这样方便些。
2.2 v2签名加固后的apk
和v1就不一样了,v2签名使用的是apksigner.jar即android sdk的build工具。在sdk目录下的lib目录下有。
第一步,安装包对齐
v2签名的安装包加固后会出现直接签名出错的情况,这时,很有可能需要将安装包重新对齐。
使用cmd转到sdk所在目录的build-tools目录下。我的是I:\enviroment\android\build-tools 然后选择一个目录进入,我在开发时,版本是29.0.3 进入之后就可看到zipalign.exe工具文件了。
检查apk是否对齐使用
./zipalign -c -v 4 你的apk名字.apk
对齐apk使用
./zipalign -v 4 要对齐的apk名字.apk 对齐后apk的名字.apk
./zipalign -v 4 要对齐的apk名字.apk 对齐后apk的名字.apk
这样就可以将加固后的apk对齐了。
第二步 v2签名
进入zipalign所在目录的lib目录下,你会看到一个apksigner.jar的文件。v2打包就要用到这玩意。
将之前对齐后的apk复制到这个目录下,把证书文件也拿过来。
命令行转到该目录
执行指令
java -jar apksigner.jar sign --ks secret.jks --out yourapp_sign.apk yourapp_dq.apk
secret.jks 是证书文件
yourapp_sign.apk 是签名后的安装包
yourapp_dq.apk 是已对齐的安装包
这样V2签名就成功完成了。
注:如果打包时同时勾选了v1,和v2,那么在二次签名时,直接使用v2签名即可,apksigner也同时支持v1签名。
更多推荐
所有评论(0)