自动上传 ProGuard 映射文件到游戏控制台

Posted

技术标签:

【中文标题】自动上传 ProGuard 映射文件到游戏控制台【英文标题】:Automatically upload ProGuard mapping files to play console 【发布时间】:2019-04-18 15:15:59 【问题描述】:

每次我需要构建我的 apk 的新版本时,将 ProGuard 映射文件上传到谷歌播放控制台非常烦人(我的 gradle 构建为每个版本生成 4 个不同的 apk,所以我确实需要上传 4 个不同的映射文件)

我想知道是否可以自动完成此过程然后我找到了这篇文章

https://developers.google.com/android-publisher/api-ref/edits/deobfuscationfiles/upload

所以谷歌确实有一个 api 来上传映射文件,是否有任何 gradle 插件可以使用?有什么简单的集成方法吗?

【问题讨论】:

【参考方案1】:

建议:如果您发布 Android App Bundle 而不是 APK,则反混淆映射文件将与您的工件一起自动上传,因此您不必单独进行。

【讨论】:

天哪,这隐藏在文档的阴影中。谢谢! @Pierre 我在用于内部测试的 Google Play 控制台中有一个 App Bundle。当我查看 ANR 和崩溃下的 Android Vitals 时,它会告诉我应用程序崩溃的位置。它给了我一个行号。但是,当我在 Android Studio 的应用程序代码中检查此行号时,它不匹配。我认为映射文件应该将去混淆的代码行与 Android Studio 中的原始代码行映射? 你应该提出一个单独的问题。 对此的后续问题:如果我们无论如何上传映射文件,它会忽略aab文件中的那个还是我们上传的那个? 如果捆绑包中已经提供了映射文件,是否可以上传?【参考方案2】:

你可以写一个gradle build script在构建完成后运行任务 然后你可以使用类似file upload plugin 的东西将文件上传到 url

【讨论】:

【参考方案3】:

当您设置 Crashlytics 时,我们将对此进行解释 here。 Gradle 还有一个Play Publisher Plugin,虽然它似乎没有上传mapping.txt。如果你想使用那个 API,它应该很容易扩展,例如。 Google Cloud php Client 与另一个 API 端点。

【讨论】:

以上是关于自动上传 ProGuard 映射文件到游戏控制台的主要内容,如果未能解决你的问题,请参考以下文章

无法在 Firebase 上上传 proguard 映射文件

无法使用自动映射器映射内部导航属性。 EF 核心

自动映射器。来自 json 的映射属性

无法创建任务以上传 Proguard 映射 File.java.lang.IllegalStateException:解析配置“androidTestAnnotationProcessor”

当我的类中有属性具有默认构造函数来提供值自动映射器时,如何映射?

使用自动映射器映射对象列表