最终,我得出了以下结论,并且这对我非常有效:
只有针对API级别30的APK格式才需要使用APKSIGNER v2方案进行签名。
相反地,如果我们使用App Bundle格式,则不需要使用APSIGNER v2方案对Bundle进行签名。
因此,我成功上传ABB Bundle至Google Play时遵循的步骤如下:
1. 生成Bundle
ionic cordova build android --prod --release - - --packageType=bundle
如果没有使用此命令生成aab,则需要手动生成,操作步骤如下:
前往文件夹 .\platforms\android\ 并执行:
.\gradlew.bat bundleRelease
如果您在lunuex或mac上,请删除.bat。
这将在\platforms\android\app\build\outputs\bundle\release目录下生成一个aab文件。
2. 本地签署aab文件 (这对于支持旧版Android版本是必要的)
我们需要复制位于\platforms\android\app\build\outputs\bundle\release目录下的生成的未签名aab文件到存放密钥库和jarsiner工具的路径(在我的情况下是JDK路径:C:\Program Files\Java\jdk1.8.0_201\bin)。
然后,打开控制台(以管理员权限),进入该目录并执行:
jarsigner -verbose -sigalg SHA1withRSA -digestalg SHA1 -keystore name-of-keystore.jks app_name.aab keystore-alias
(*重命名参数:name-of-keystore.jks、app_name.aab和keystore-alias)
3. 对齐aab文件
在上传aab文件之前,可以通过运行以下命令对aab文件进行对齐:
zipalign.exe -v 4 signed app_name.aab aligned_app_name.aab
(*重命名参数:app_name.aab和aligned_app_name.aab)
这个已对齐的aab文件必须上传到Google Play。