【问题标题】:How to get ProGuard mapping file of previous release build如何获取以前版本构建的 ProGuard 映射文件
【发布时间】:2019-06-11 12:30:47
【问题描述】:

我有一个生产应用程序,我有一些崩溃报告堆栈跟踪,它们来自以前的版本。我不知道我是否有以前构建版本的ProGuard 映射文件。我有现在的。据我所知,不同版本的映射文件是不同的。

我的问题是:
如何获取之前构建的映射文件?

【问题讨论】:

  • 您不使用 VCS (Git) 来跟踪文件中的更改吗?
  • 是的,我们这样做了,但是构建文件夹被忽略了

标签: android proguard stack-trace android-proguard


【解决方案1】:

如果您创建的是应用程序包 (.aab) 而不是应用程序包 (.apk),则可以从那里提取映射文件。

  1. 从 Google Play 控制台下载应用程序包
  2. 将文件扩展名从.aab重命名为.zip
  3. 解压 ZIP 存档
  4. 导航到BUNDLE-METADATA/com.android.tools.build.obfuscation/proguard.map
  5. 用文件编辑器打开proguard.map,就是映射文件。

【讨论】:

  • 嗯,我用.apk文件
【解决方案2】:

映射文件在每次构建后都会被覆盖,因此您可能会永远丢失它。

我能想到的最佳方法是使用一些 VCS(例如 Git)对代码进行版本控制,并将映射文件移动到未被 gitignored 的位置。

要将生成的 proguard 映射文件移动到不同的路径检查 this 答案。如果你愿意,你甚至可以重命名它。

【讨论】:

  • 我已经在 Git 中对我的代码进行了版本控制。但我不保存构建文件夹(生成映射文件的位置)。因此,先前构建的映射文件被覆盖。但我想要前一个,因为我需要对前一个版本的堆栈跟踪进行去混淆处理。我想知道如何清理之前造成的混乱,而不是如何防止即将发生的混乱。
  • AFAIK 无法恢复丢失的映射 :( 您可以尝试检查您的旧提交并再次构建以生成映射,但我认为不能保证您最终会得到一个兼容的映射去混淆你的崩溃。
  • 如果您创建的不是 APK,映射文件应该在 App Bundle 中。在 Google Play Console 中,映射文件会自动从该 AAB 文件中提取。您可以尝试下载捆绑包并提取映射。
猜你喜欢
  • 1970-01-01
  • 2017-11-06
  • 1970-01-01
  • 1970-01-01
  • 2013-08-18
  • 1970-01-01
  • 2010-12-10
  • 2016-06-03
  • 1970-01-01
相关资源
最近更新 更多