随着开发人员 Google 控制台的这一变化,我有点迷茫,当我去查看我的应用程序以上传它时,我得到了以下信息:
警告 此 APK 包含可被混淆的 Java 或 Kotlin 代码。我们建议您上传去混淆文件,以便于分析和调试 ANR 错误和崩溃。更多信息
我一直在寻找有关混淆的信息并阅读了有关 proguard 的信息。我已经激活了它,但是当我转到 Firebase 时,我的数据库中的字段名称已被缩短,并且它们没有以真实姓名出现。我已经读过,为此我必须将去混淆文件与我上传到商店的捆绑一起上传,但我找不到在任何地方上传所述文件的选项。
该消息只是一个警告,建议您混淆您的代码,以便通过对源代码进行逆向工程看不到它。作为警告,您将能够毫无问题地上传您的应用程序。
这是通过以下配置完成的,主要是属性
minifyEnabled true
:查看: 如何缩小、混淆和优化您的应用
您必须创建文件来混淆代码并上传它,您可以从Google Play 控制台执行此操作,选择应用程序并从“版本概述”中查看最新版本或按版本搜索,然后单击蓝色箭头:
在“App bundles and APKs”部分中,单击 3 点符号以访问“Upload ReTrace mapping file (.txt or .map)”选项,您将在此处上传文件。
您不需要上传任何文件。你只需要激活缩小:
传统上,这启用了 proguard,但从 Android Gradle 插件的 3.4.0 版开始,它被 R8 取代。这是 google 开发并针对 android 优化的新代码压缩器。它有两个主要任务:
虽然 R8 是一个新的编译器,但它使用与 proguard 相同的设置。这些设置可以在 gradle 中定义为 proguardFiles 的文件中找到:
但是,有更简单的方法可以做到这一点。例如,您可以使用注释
@Keep
使 R8 不修改类。另一种选择是使用
@PropertyName
firebase 注释。这样,当名称缩短时,您不会有任何问题,因为 firebase 将使用注释字符串而不是属性名称。