在 Google Play 中拆分后是否可以返回使用通用 apk?

Is it possible to go back to using universal apk after splitting in Google Play?

前段时间我决定按体系结构拆分我的 apk,因为那样会减小我的应用程序大小。

但是,我从惨痛的教训中了解到,这让我们的服务台的生活变得非常艰难,因为我们实际上会向一些客户发送签名的 apk 来解决特定问题。

现在,当向客户端发送apk 时,我们需要找出他们使用的具体架构。我们的客户无法卸载该应用程序,因为他们可能会丢失敏感数据。

是否可以只上传一个通用 apk 到 Google 玩我们的下一个更新? Google Play 会处理这个问题吗?我尝试在我的 phone 上使用 apks 在本地进行更新,但它似乎不起作用。

好的,我相信我现在有答案了。

通用 apk 将在更新到特定架构后工作,因为通用包含每个架构 运行 应用程序所需的所有包。

然而

您需要将软件包版本调高。如果您要拆分架构,根据下面的代码片段,每个架构可能都有自己的包版本,这似乎是版本化架构的默认设置。

applicationVariants.all { variant ->
        variant.outputs.each { output ->
            // For each separate APK per architecture, set a unique version code as described here:
            // https://developer.android.com/studio/build/configure-apk-splits.html
            def versionCodes = ["armeabi-v7a": 1, "x86": 2, "arm64-v8a": 3, "x86_64": 4]
            def abi = output.getFilter(OutputFile.ABI)
            if (abi != null) {  // null for the universal-debug, universal-release variants
                output.versionCodeOverride =
                        versionCodes.get(abi) * 1048576 + defaultConfig.versionCode
            }
        }
    }

在这种情况下,如果您的通用 apk 版本为 100 左右,则您的 armeabi-v7 将在 100 万左右(对我而言为 1048601)。

因此,如果您希望下一次更新使用通用 apk,则需要您的 armeabi-v7 用户接收超过 100 万的版本。