4

是否可以将通过 android app bundle 生成的多个 apk 合并到一个可安装/可分发的 apk 中?

我尝试通过 adb install-multiple 安装,但以这种方式,它不可分发。

4

3 回答 3

1

Bundletool build-apks 命令有一个--mode=universal标志,允许您构建一个包含所有内容的通用 APK。

但它在 App Bundle 上运行,而不是在生成的 APK 上运行。

于 2019-02-14T20:23:05.877 回答
0

不确定这对您来说是否仍然是个问题?关于官方 android 文档:

https://developer.android.com/studio/command-line/bundletool#device_specific_apks

你应该能够

从现有 APK 集中提取特定于设备的 APK

在捆绑工具的帮助下

bundletool extract-apks
--apks=/MyApp/my_existing_APK_set.apks
--output-dir=/MyApp/my_pixel2_APK_set.apks
--device-spec=/MyApp/bundletool/pixel2.json

  • --apks => 你的 apk 集
  • --output-dir => 所需的输出
  • --device-spec => 设备细节的 json 文件

如果这不能解决您的问题并且您首先通过 Play 商店获得了捆绑包,这也可以帮助您:

共享安装链接 要共享链接以安装 Google Play 从您的 app bundle 生成的相应设备特定 APK: 打开 App bundle explorer 页面(Release > App bundle explorer)。选择页面右上角附近的版本过滤器。在“选择版本”表中,选择要查看的版本上的右箭头。选择下载选项卡。要共享链接以安装特定于设备的 APK:在“内部应用共享链接”部分中,选择复制可共享链接。分享链接。提示:您可以选择管理访问权限以访问内部应用共享页面并快速与您的团队共享应用程序包和 APK 链接。要了解更多信息,请转到在内部共享 app bundle 和 APK。

如此处所述:https ://support.google.com/googleplay/android-developer/answer/9844279?hl=en

于 2022-01-27T13:11:31.777 回答
0

可能您使用了 abi split 。只需universalApk true像下面这样放入您的拆分中,您将获得一个适用于 all 的 apk。

android {
    splits {
        // Configures multiple APKs based on ABI.
        abi {
            // Enables building multiple APKs per ABI.
            enable true

            // By default all ABIs are included, so use reset() and include to specify that we only
            // want APKs for x86, armeabi-v7a, and mips.
            reset()

            // Specifies a list of ABIs that Gradle should create APKs for.
            include "x86", "x86_64", "armeabi-v7a", "arm64-v8a"

            // Specifies that we want to also generate a universal APK that includes all ABIs.
            universalApk true
        }
    }
    //...    
}
于 2019-02-14T09:29:34.937 回答