未为 Android 插件上传 Dexguard 映射文件 Gradle 3.0+
Dexguard mapping files not being uploaded for Android Plugin for Gradle 3.0+
我们正在使用 Dexguard 和最新的 Fabric Gradle 插件版本 1.25.2。但是,当我们 运行 使用 Android 插件构建 Gradle 2.3.3 时,我们会看到 gradle 任务 运行 for '{namespace}:crashlyticsUploadDeobs{ flavor + buildvariant},但是对于 Gradle 3.0.1 的 Android PLugin,我们看不到这个 gradle 任务 运行 并且 Crashlytics 中的日志没有去混淆.
我的假设是这是将 Dexguard 映射文件上传到 Crashlytics 的任务。
我看到 Fabric Gradle Plugin version 1.24.0 更新日志表明它解决了 Proguard 的这个问题。 Dexguard 是否还有其他问题需要在 Fabric Gradle 插件中解决?
在 GuardSquare 的帮助下,我能够确定问题所在。 Dexguard 8.1 提供了一个 'dexguard-partial' 插件,让您可以排除某些 buildTypes 的 dexguard。通过在调试构建中排除 dexguard,您可以获得更快的构建时间。但是,此 'dexguard-partial' 插件似乎无法被 Fabric 的 Gradle 插件识别。因此,那些将 Dexguard 映射文件上传到 Crashlytics 的任务,永远不会 运行.
我能够通过从 'dexguard-partial' 切换回 'dexguard' 插件并添加以下条件检查以确保该插件仅包含在发布版本中来解决此问题:
getGradle().getStartParameter().getTaskRequests().toString().contains("Release")
这通过为这些构建排除 dexguard 来减少调试构建的构建时间。并通过在发布版本中包含 dexguard 解决了 Crashlytics 问题。
我们正在使用 Dexguard 和最新的 Fabric Gradle 插件版本 1.25.2。但是,当我们 运行 使用 Android 插件构建 Gradle 2.3.3 时,我们会看到 gradle 任务 运行 for '{namespace}:crashlyticsUploadDeobs{ flavor + buildvariant},但是对于 Gradle 3.0.1 的 Android PLugin,我们看不到这个 gradle 任务 运行 并且 Crashlytics 中的日志没有去混淆.
我的假设是这是将 Dexguard 映射文件上传到 Crashlytics 的任务。
我看到 Fabric Gradle Plugin version 1.24.0 更新日志表明它解决了 Proguard 的这个问题。 Dexguard 是否还有其他问题需要在 Fabric Gradle 插件中解决?
在 GuardSquare 的帮助下,我能够确定问题所在。 Dexguard 8.1 提供了一个 'dexguard-partial' 插件,让您可以排除某些 buildTypes 的 dexguard。通过在调试构建中排除 dexguard,您可以获得更快的构建时间。但是,此 'dexguard-partial' 插件似乎无法被 Fabric 的 Gradle 插件识别。因此,那些将 Dexguard 映射文件上传到 Crashlytics 的任务,永远不会 运行.
我能够通过从 'dexguard-partial' 切换回 'dexguard' 插件并添加以下条件检查以确保该插件仅包含在发布版本中来解决此问题:
getGradle().getStartParameter().getTaskRequests().toString().contains("Release")
这通过为这些构建排除 dexguard 来减少调试构建的构建时间。并通过在发布版本中包含 dexguard 解决了 Crashlytics 问题。