[移动端] 如何签名?

[复制链接]
陈家粉儿Lv.7 显示全部楼层 发表于 2022-11-28 18:15:07 |阅读模式 打印 上一主题 下一主题
1
未解决

如何签名?

1403 1
如何签名?
回复

使用道具 举报

精彩评论1

希望工程bossLv.7 显示全部楼层 发表于 2022-11-28 18:15:25
安卓上架
1、准备工作

keytool:生成数字证书,即密钥,也就是上面说到的扩展名为.keystore的那类文件。

jarsigner:jdk 自带的签名工具,可以对 jar 进行签名。使用 keystore 文件进行签名。生成的签名文件默认使用 keystore 的别名命名。

apksigner:Android sdk 提供的专门用于 Android 应用的签名工具,与jarsigner工具不同的是,jarsigner只支持v1签名;而apksigner支持v1、v2和v3签名,更多关于Android签名的原理,请参看Android关于签名的官方文档。

zipalign:对签名后的apk进行优化,提高与Android系统交互的效率。

2、用keytool生成证书

命令:keytool -genkey -v -keystore liufeng.keystore -alias liufeng.keystore -keyalg RSA -validity 20000。

解释:-genkey意味着执行的是生成数字证书操作,-v表示将生成证书的详细信息打印出来,显示在dos窗口中;-keystore liufeng.keystore 表示生成的数字证书的文件名为“liufeng.keystore”;-alias liufeng.keystore 表示证书的别名为“liufeng.keystore”,当然可以不和上面的文件名一样;-keyalg RSA 表示生成密钥文件所采用的算法为RSA;-validity 20000 表示该数字证书的有效期为20000天,意味着20000天之后该证书将失效。

3、使用jarsigner工具为Android应用v1签名

命令:jarsigner -verbose -keystore liufeng.keystore -signedjar notepad_signed.apk notepad.apk liufeng.keystore。

解释:jarsigner是工具名称,-verbose表示将签名过程中的详细信息打印出来,显示在dos窗口中;-keystore liufeng.keystore 表示签名所使用的数字证书所在位置,这里没有写路径,表示在当前目录下;-signedjar notepad_signed.apk notepad.apk 表示给notepad.apk文件签名,签名后的文件名称为notepad_signed.apk;-liufeng.keystore(最后面的)表示证书的别名,对应于生成数字证书时-alias参数后面的名称。

4、使用apksigner工具为Android应用v1、v2或v3签名(apksigner和jarsigner只要使用其中一种签名工具就可以了,推荐使用apksigner为应用签名)

命令:apksigner sign --v1-signing-enabled true --v2-signing-enabled true --v3-signing-enabled true --ks liufeng.keystore unsigned.apk。

解释:apksigner是工具名称,--v1-signing-enabled true表示添加v1签名,本次命令同时添加v1、v2和v3签名,均使用liufeng.keystore证书。

5、使用zipalign字节优化工具优化apk(非必须但建议这么做)

命令:zipalign -v 4 signed.apk signed_aligned.apk 说明。

解释:zipalign是工具名称,-v表示在DOS窗口打印出详细的优化信息; signed.apk signed_aligned.apk 表示对已签名文件signed.apk进行优化,优化后的文件名为signed_aligned.apk。

需要注意的是,如果使用jarsigner工具,可以在签名后使用zipalign工具优化;如果使用apksigner工具进行签名,签名完成不得使用zipalign工具优化,这是其签名原理决定的,需要字节优化的话可以提前到签名前进行。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

一门APP打包致力于H5混合APP基础框架领域的前沿探索,专注轻便的移动应用解决方案 提供基于HTML前端页面在各种应用层级的端延展。
  • 官方手机版

  • 微信公众号

  • 微信客服

  • Powered by Discuz! X3.4 | Copyright © 2001-2020, 一门APP. | 一门APP开发平台|热门标签
  • 蜀ICP备17005078号-4 | 川公网安备 51019002001185号 | |成都七扇门科技有限公司