使用ionic和cordova生成面向API级别30(Android 11)的Android捆绑包

k4emjkb1  于 2022-11-15  发布在  Ionic
关注(0)|答案(3)|浏览(246)

我是一名离子开发人员,在提交更新(或新应用)时,我一直在处理Google Play的这些新要求:
从2021年8月开始,新应用将需要以Android App Bundle格式发布。
从2021年11月开始,应用更新将被要求以API级别30或更高为目标,并针对Android 11中的行为变化进行调整。未接收更新的现有应用不受影响,可以继续从Play商店下载。Wear OS应用必须继续以API级别28或更高为目标。
我正在使用ionic/cli v6.16.3和cordova v10.0.0,但无法使用以下命令创建aab包:
离子cordova构建android --产品--发布-- --- --包类型=捆绑包
它曾经与我的previos cordova 版本(v9)工作正常,但它已经停止工作,因为我升级到 cordova v10。
除此之外,我不确定是否必须使用APKSIGNER scheme v2签署捆绑包。

agxfikkp

agxfikkp1#

最后,我得出了这个结论,这就是它对我的工作:
APKSIGNER方案v2必须仅用于针对API级别30的APK格式。
相反,如果我们使用App Bundle格式,则不需要使用APSIGNER v2方案对包进行签名。
因此,我按照以下步骤成功地将针对API级别30的abb捆绑包上传到Google Play:

1.生成bunde

ionic cordova build android --prod --release - - --packageType=bundle

如果此命令未生成aab,则必须手动生成,如下所示:
转到文件夹.\platforms\android\并执行:

.\gradlew.bat bundleRelease

如果你在lunuex或mac中,请删除.bat。
这将在\platforms\android\app\build\output\bundle\release中生成一个aab文件

2.本地签署aab(这是支持旧版Android所必需的)

我们必须将位于\platforms\android\app\build\outputs\bundle\release中的生成的aab(未签名)复制到密钥库和jarsiner工具所在的路径(在我的例子中是JDK路径:C:\程序文件\Java\jdk1.8.0_201\bin)中找到的。
然后,打开控制台(使用Admin权限),转到该目录并执行:

jarsigner -verbose -sigalg SHA1withRSA -digestalg SHA1 -keystore name-of-keystore.jks app_name.aab keystore-alias

(* 重命名参数:密钥库名称.jks、应用程序名称.aab和密钥库别名)

3.对纬

在上传aab之前,您可以通过运行以下命令来对齐它:

zipalign.exe -v 4 signed app_name.aab aligned_app_name.aab

(* 重命名参数:应用程序名称.aab和对齐的应用程序名称.aab)
此对齐的aab必须上传到Google Play

44u64gxh

44u64gxh2#

我使用的是Cordova v10.0.0,这个命令 * 很 * 适合我:
cordova build android --release -- --buildConfig --packageType=bundle
order of the params可能很重要。不需要使用gradlew命令。.aab文件被创建并存储在platforms\android\app\build\outputs\bundle\release\文件夹中。
请注意,直到我更新了cordova-android依赖关系,它才开始工作:cordova platform rm android,然后是cordova platform add android(基于this other answer);现在版本为9.1.0。

ep6jt1vc

ep6jt1vc3#

当你在Play商店发布你的应用程序时,你可能会被迫使用apksigner而不是jarsigner,而且apksigner改变了签名和压缩的顺序。
cordova 示例:
建筑物
cordova build --release android
拉链
cd platforms/android/app/build/outputs/apk/release
~/Library/Android/sdk/build-tools/31.0.0/zipalign -v 4 app-release-unsigned.apk YOUR_APP_NAME_HERE.apk
符号
~/Library/Android/sdk/build-tools/31.0.0/apksigner sign -ks ../../../../../../../THE_NAME_OF_YOUR_KEYS.keystore YOUR_APP_NAME_HERE.apk

相关问题