如何在assembleRelease之后执行任务?

时间:2016-12-29 17:14:27

标签: android gradle android-gradle firebase-crash-reporting

Firebase-Crash has a new feature。您可以使用Gradle命令上传mapping.txt./gradlew :app:firebaseUploadReleaseProguardMapping

我想自动化这个过程。我想在创建发布版apk后立即将mapping.txt文件上传到Firebase。

如何在成功firebaseUploadReleaseProguardMapping后强制Gradle执行assembleRelease?有更简单的方法吗?

4 个答案:

答案 0 :(得分:4)

通常,您可以使用dependsOn方法为任务定义依赖关系。

例如:

task A << {
    println 'Hello from A'
}

task B << {
    println 'Hello from B'
}

B.dependsOn A

您将获得

> gradle -q B
Hello from A
Hello from B

在您的情况下,您可以指定:

firebaseUploadReleaseProguardMapping.dependsOn assembleRelease

您也可以使用finalizedBy方法。

A.finalizedBy B

请注意:

  • 即使B失败,也会运行A
  • finalizedBy标记为&#34;孵化&#34;这意味着这是一个实验性功能,其行为可以在以后的版本中进行更改。

答案 1 :(得分:1)

仔细查看目标firebaseUploadReleaseProguardMapping时执行的任务链:

...
:app:transformClassesWithDexForRelease
:app:mergeReleaseJniLibFolders UP-TO-DATE
:app:transformNative_libsWithMergeJniLibsForRelease
:app:transformNative_libsWithStripDebugSymbolForRelease
:app:packageRelease
:app:assembleRelease
:app:firebaseUploadReleaseProguardMapping

看看firebaseUploadReleaseProguardMapping已经依赖于assembleRelease。您不需要为您尝试执行的操作强制执行任何其他依赖项 - 插件已经设置了依赖项,因此当您告诉gradle运行该任务时,它已经完成了发布版本。如果您希望在成功发布版本后上传,只需将firebaseUploadReleaseProguardMapping而不是assembleRelease定位。

答案 2 :(得分:1)

37 errors

答案 3 :(得分:0)

可以定义外部工具“生成签名的APK并上传ProGuard映射文件” - 而不是“生成签名的APK”按钮,因为任务firebaseUploadReleaseProguardMapping取决于assembleRelease,因此<强>总是执行它。 Firebase插件最近更新为1.1.0 ...

Screenshot

结果:

:mobile:assembleRelease
:mobile:firebaseUploadReleaseProguardMapping
Attempting to upload Proguard mapping file...