Quasar 对未签名的 APK 进行对齐和签名

官方文档:发布到应用商店 | Quasar 框架 - Quasar 框架

生成未签名的apkapp-release-unsigned.apk

quasar build -m capacitor -T android

接下来进行对齐和签名

前提准备

添加系统环境变量
D:\Android\Android Studio\jbr\bin\
D:\Android\SDK\build-tools\35.0.1\
D:\Android\SDK\build-tools\35.0.1\

使用keytool生成keystore

keytool -genkey -v -keystore my-release-key.keystore -alias alias_name -keyalg RSA -keysize 2048 -validity 20000

对APK进行zip对齐

zipalign -v 4 <path-to-same-apk-file> HelloWorld.apk

对APK进行签名

apksigner sign --ks my-release-key.keystore --ks-key-alias alias_name <path-to-unsigned-apk-file>

以下是三个命令的详细说明,包括参数含义、需要替换的内容


1. 生成 keystore

keytool -genkey -v -keystore my-release-key.keystore -alias alias_name -keyalg RSA -keysize 2048 -validity 20000
参数说明:
  • -genkey:生成密钥对。
  • -v:输出详细日志。
  • -keystore my-release-key.keystore:指定生成的 keystore 文件名(需替换为你自己的名称)。
  • -alias alias_name:密钥别名(需替换为你自己的别名,如 my_app_key)。
  • -keyalg RSA:使用 RSA 算法。
  • -keysize 2048:密钥长度 2048 位(推荐的安全值)。
  • -validity 20000:证书有效期天数(20000 天约 54 年,可调整)。
需要替换的内容:
  • my-release-key.keystore:自定义 keystore 文件名(如 app_release.keystore)。
  • alias_name:自定义别名(如 my_app_alias)。

执行后会生成 .keystore 文件,需妥善保存。


2. zip 对齐

Zip 对齐本质上是 优化 APK 文件结构,使其在 Android 设备的存储和内存访问中更高效,从而提升应用性能并降低资源占用。

zipalign -v 4 <path-to-same-apk-file> HelloWorld.apk
参数说明:
  • -v:输出详细日志。
  • 4:对齐字节边界(必须为 4,Android 标准)。
  • <path-to-same-apk-file>:未对齐的 APK 路径(需替换为实际路径)。
  • HelloWorld.apk:对齐后的输出 APK 文件名(可自定义)。
需要替换的内容:
  • <path-to-same-apk-file>:输入 APK 路径(如 app-unsigned.apk)。
  • HelloWorld.apk:输出 APK 名称(如 app-aligned.apk)。

3. APK 签名

apksigner sign --ks my-release-key.keystore --ks-key-alias alias_name <path-to-unsigned-apk-file>
参数说明:
  • --ks my-release-key.keystore:指定 keystore 文件路径(需替换为生成的 .keystore 文件)。
  • --ks-key-alias alias_name:指定密钥别名(需与生成时一致)。
  • <path-to-unsigned-apk-file>:未签名的 APK 路径(需替换为对齐后的 APK 路径)。
需要替换的内容:
  • my-release-key.keystore:你的 keystore 文件路径(如 app_release.keystore)。
  • alias_name:你的密钥别名(如 my_app_alias)。
  • <path-to-unsigned-apk-file>:对齐后的 APK 路径(如 app-aligned.apk)。
执行目录:
  • 任意目录,但需确保 keystore 和 APK 路径正确。
  • 建议与 zipalign 在同一目录执行,避免路径问题。

完整流程示例:

  1. 生成 keystore(在项目根目录):
keytool -genkey -v -keystore qnote.keystore -alias qnote -keyalg RSA -keysize 2048 -validity 20000

->输入密钥库口令
->输入唯一判别名(是否正确:输入y)
->生成qnote.keystore文件
->添加到.gitignore

// ... 现有代码 ...

# 密钥库文件
.keystore
  1. zip 对齐(在构建输出目录dist/.../release):
zipalign -v 4 app-release-unsigned.apk qnote.apk

->生成qnote.apk
3. 签名(与对齐后的 APK 同目录dist/.../release):

apksigner sign --ks ../../../../../qnote.keystore --ks-key-alias qnote qnote.apk

->生成qnote.apk.idsig
idsig文件用于存储 APK 的签名信息(如 v2/v3 签名块),用于验证 APK 是否被篡改


签名后建议验证:

apksigner verify --verbose qnote.apk
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值