Android应用程序签名和Zipalign

Android应用程序可以使用各种编程语言和开发程序来创建。这些Android应用程序通过各种渠道发布,并安装在Android设备上。

为了构建一个完整的Andrioid应用程序,需要一个签名过程来标识应用程序创建者。

通常,开发程序会自动执行此操作,因此不需要额外的工作。但是,如果您将LIAPP等安全服务应用于应用程序,则应用程序包将更改,并且您必须手动对其进行签名。

与jarsigner签约

您可以使用apksigner或jarsigner对Android应用程序进行签名。Apksigner是24.0.3及更高版本的androidsdk构建工具提供的工具,只能在apk文件上签名。Jarsigner是Java中包含的一个工具,可以对apk和aab(Android应用程序包)文件进行签名。

在这篇文章中,我们将具体介绍如何与jarsigner签名。
Jarsigner只需在Windows中的cmd或Mac中的terminal等程序上以下面的形式输入命令行即可使用。

[APK]jarsigner-verbose-sigalg SHA1withRSA-digestalg SHA1-keystore“keystore_PATH”“APP_FILE_PATH”“别名_NAME”

[AAB]jarsigner-verbose-sigalg SHA256withRSA-digestalg SHA-256-keystore“keystore_PATH”“APP_FILE_PATH”“别名_NAME”

这里我们需要关注的是用双引号(“)标记的部分。

[密钥库路径]

输入密钥库的路径
通常,它的扩展名是.keystore或.jks。
How to check the keystore in Android StudioBuild Menu => Generate Signed Bundle / APK => Select Android Aab Bundle or APK => Check Key store path

How to check keystore from UnityFile Menu => Build Settings => Player Settings => Publishing Settings => Check the Path=> Check the location of a file with the identified name

[应用程序文件路径]

输入要签名的应用程序文件的路径。

[别名]

输入创建密钥时创建的别名。
How to check Alias from Android StudioBuild menu => Select Generate Signed Bundle / APK => Select Android Aab Bundle or APK => Check Key alias

How to check Alias from UnityFile Menu => Build Settings => Player Settings => Publishing Settings => Check Alias

执行命令后,将出现一条输入密钥库密码的消息。

-输入密钥库的密码:
当输入密钥库密码时,密码字符不会显示在屏幕上,而是实际输入的。如果输入了不正确的密码,将显示如下错误消息。

-jarsigner错误:java.lang.RuntimeException:密钥库加载:密钥库被篡改或密码不正确
一旦输入了正确的密钥库密码,您将进入下一步。如果密钥库密码和密钥密码相同,则将立即进行签名。如果密钥库密码和密钥密码不同,系统将提示您输入密钥密码。

-输入别名的密钥密码:
输入正确的密钥密码后,将继续签名,签名完成后将显示“jar signed.”。
在命令行中,-storepass和-keypass选项允许您预先指定和执行密码。如果使用此选项,则不会显示输入密码的消息;相反,密码将自动输入。

【APK】

jarsigner-verbose-sigalg SHA1withRSA-digestalg SHA1-keystore-storepass[keystore_password]-keypass[Key_password]“keystore_PATH”“APP_FILE_PATH”“别名_NAME”

【AAB】

jarsigner-verbose-sigalg SHA256withRSA-digestalg SHA-256-keystore-storepass[keystore_password]-keypass[Key_password]“keystore_PATH”“APP_FILE_PATH”“别名_NAME”

有时,虽然输入了有效的密码,但仍会收到错误消息。在这种情况下,您应该首先检查是否正确输入了密钥库或别名信息。如果文件名和路径包含空格或特殊字符,也可能发生错误。

APK zipalign

使用jarsigner签名的APK文件需要使用zipaign进行进一步排序。没有zipalign的安装和执行没有问题,但是在App Market注册发布时可能会失败。对于AAB文件,没有zipalign的官方指南,因此不需要它。

您可以在下面的表单中为zipaign运行命令行。
zipaign-f-v 4“需要zipaign的apk文件路径”“zipaign之后将保存的apk文件路径”。

使用脚本文件签名(&Z)
到目前为止,我们已经学会了如何手动签名和zipaling。下面的脚本文件是一个示例脚本,它将使签名和zipalign更容易。
MAC脚本
请使用示例脚本查看下面的详细信息。在记事本或文本编辑器中打开下载的文件,根据以下内容进行修改,然后保存文件。

KeyStorePath=" Keystore path "
ALIAS_NAME=“alias name”
STORE_PASS=" Keystore Password"
KEY_PASS=“Key password”
ZIP_ALIGN=“zipalign File Path”
zipalign文件位于androidsdk安装路径下的buildtools中。如果您想在不保存的情况下输入自己的密码,则需要删除与-storepass和-keypass相关的选项。

Windows用户可以将要签名的应用程序文件拖到LIAPP_sign_窗口。bat文件,它将立即运行。MAC用户可以通过按顺序拖动脚本文件和应用程序文件,或输入如下所示的路径来运行终端程序。

正常运行时,显示\bs“signing:path/file”等内容,完成后显示“jar signed.”。如果“jar signed.”没有出现并且出现错误,请检查相关信息并关闭窗口。之后,对错误采取措施并重新运行它。如果脚本正常运行没有问题,将显示“signing:path/file”等内容,完成后还会显示“jar signed.”。如果出现错误而不是“jar signed.”,请检查提供的相关信息并关闭窗口。然后,对错误采取措施并再次运行它。如果文件名和路径包含空格或特殊字符,也可能发生错误。

APK文件必须先签名,然后再进行zipaling。如果消息“jar signed.”在签名过程中已被确认没有任何问题,请按任意键继续执行下一个zipaign步骤。如果zipalign成功完成,将显示一条消息“Verification successful”(验证成功)。zipaign完成的文件保存时,文件名后面有\u zipaigned。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值