最近把一个小东西做完了,想上架让大家用一下。在上架之前关于app需要做的几件事在此备忘一下。
1、app签名。
我用的是android studio 21.2.1版,签名跟之前的版本可能不同(我之前用的是3.5),但也大同小异。21.2.1版的签名页面是这样的:
继续下一步,再下一步直到完成,就生成了一个已签名的apk。位置:“项目名\app\release”
2、手动签名。因为后面有些步骤必须要用到用手动签名,所以这个也必须要会。
要用到两个工具:
keytool:生成数字证书(秘钥文件)工具(其实我觉得这个可以不学,把上面签名页面保存的密钥文件拷过来就可以用了。一样的,所以不会也行。)
jarsigner:app签名工具。
以上两个工具在android studio的安装目录下的bin下面,类似下面(版本21.2.1):
C:\Program Files\Android\Android Studio\jre\bin
最好把环境变量加进去,这样就在哪个目录下都可以用了。像这样:
注意:这两个工具都是在dos窗口下使用。
keytool用法:
keytool -genkey -v -keystore newarea.keystore -alias key2 -keyalg RSA -validity 20000
说明:
1)-genkey生成数字证书操作,-v打印证书详细信息;
2)newarea.keystore数字证书的文件名;
3)-alias key2证书别名为key2,起啥名都名,后面要用到;
4)-keyalg RSA 密钥文件算法为RSA;
5)-validity 20000 数字证书的有效期为20000天;
然后dosp窗口会提示输入一些信息,类似android studio里面关于密钥的信息:
但好像是中文的,我没用过。上面最后的国家代码是两位英文,中国是CN。
jarsigner用法:(把apk文件和证书文件最好放在一起,这样方便写命令。)
jarsigner -verbose -keystore Newaeratutov1.keystore -signedjar signed.apk newareaautover.apk key2
1)-verbose显示签名过程详细信息;
2)-keystore Newaeratutov1.keystore签名所使用的数字证书名及位置;
3)-signedjar signed.apk 签名后的文件名为signed.apk,不删除原文件(要删除原文件,去掉就行);
4)key2证书的别名,对应生成数字证书时-alias参数后面的名称.
注意:如果重复签名会出错,我遇到的是这样的:
jarsigner: java.lang.SecurityException: invalid SHA1 signature file digest for res/XS.xml
解决办法:用RAR打开要签名的apk文件,删除:META-INFO文件夹。只有签过名才有这个文件夹。
验证签名是否成功:
jarsigner -verify signed.apk 会得到类似下面的返回信息:
那些警告是什么意思我也不知道,反正能用。
到这关于签名就完成了。
3、apk加固,这个要不要做就看个人了,我觉得要做一下,虽然apk反编译很容易,但也不能白给,所以还是加固一下。我不知道哪里的加固好,我只用过腾讯云的。
地址:https://console.cloud.tencent.com/ms/reinforce/list/basic 要微信扫码登录。我用的是基础版加固,估计企业版要钱。
再后面就要真正上架了,还需要软著,这个很麻烦,自己做不用钱,但时间最少30个工作日,花钱就会快,听有的5天就能下来,价钱400到1400不等,阿里云的我看了,好像是1040元。30天。但是没软著,所有的大平台都上不了架,我现在只在酷安做了,但我看了下说明,好像没软著也要下架的。先看看吧。