【问题标题】:Managing architecture release for react-native android管理 react-native android 的架构发布
【发布时间】:2019-06-17 20:05:33
【问题描述】:

Google 为更新应用的 apk 文件设置了截止日期,因此它们需要为所有架构版本提供单独的文件。

所以在 build.gradle 文件中我做了以下更改:

def enableSeparateBuildPerCPUArchitecture = true
...
splits {
        abi {
            ...
            include "armeabi-v7a", "x86", "arm64-v8a", "x86-64"
            ...
        }
    }
...
applicationVariants.all { variant ->
        variant.outputs.each { output ->

            def versionCodes = ["armeabi-v7a":1, "x86":2, "arm64-v8a":3, "x86-64":4]
            ...
        }
    }

起初我认为它工作得很好,因为在 ...android\app\build\outputs\apk\release 目录中我发现了几个文件而不是一个。然而,让我惊讶的第一件事是我收到了 3 个文件版本:arm64-v8a、x86 和 armeabi-v7a。 未生成 x86-64 版本是否正确?

第二件事是,当我在 google play 控制台上更新文件时,我仍然收到消息说文件没有被体系结构版本相应地分开。还有什么我应该做的吗?

【问题讨论】:

  • 我想你很困惑。 Google 设定了所有应用程序必须支持 64 位的日期,而不是所有应用程序都必须具有单独的 64 位 APK 的日期。仍然允许通过多 ABI apk 包进行支持。这一切都从 2019 年 8 月 1 日开始(有一些例外)。
  • 我收到了一封包含此消息的电子邮件:“到 2019 年 8 月 1 日,所有使用本机代码的应用程序必须在 32 位版本之外提供 64 位版本才能发布更新。今年 1 月,我们重申,这是为创新让路以及预期未来仅支持 64 位代码的 Android 设备所必需的。”我知道我应该提供一个单独的 64 位版本,但我对此不是 100% 确定
  • 这意味着所有应用程序都必须支持 64 位 CPU。这并不意味着他们需要单独的应用程序包。尽管这样做并没有什么坏处,但您从 Play 商店下载的内容会更少。所以这不是浪费,尽管我强烈建议您使用 Fastlane 或类似的工具自动执行构建上传。
  • 至于 x86-64 二进制文件 - 你确定你所有的库都提供它们吗?这是我最不关心的一个,因为 x86-64 在 Android 设备上的唯一主要用途是用于模拟器 - 99% 以上的手机/平板电脑都是 ARM。
  • 我之前试图拆分 apk 文件,但是遇到了一些问题,就把它放在我的待办事项列表中;)但是由于谷歌提醒了我,我认为应该这样做。跨度>

标签: android react-native google-play react-native-android


【解决方案1】:

好的,我找到了。应该使用“x86_64”而不是“x86-64”。然后它会生成所有 4 个版本。

【讨论】:

    猜你喜欢
    • 2020-03-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-12-15
    • 2017-01-28
    • 2021-06-13
    • 2016-12-23
    • 2018-07-08
    相关资源
    最近更新 更多