Crashlytics: ext.alwaysUpdateBuildId = false is wrongly applied even in other productsFlavors

This is my definition productFlavors

in build.gradle file:

flavorDimensions "fasterbuild", "flavor"

productFlavors {
    slow {
        dimension "fasterbuild"
        // "Slow" uses the defaultConfig minSdkVersion, currently 16
    }

    fast {
        dimension "fasterbuild"

        //Use minSdk 21, mainly to avoid legacy multidex
        minSdkVersion 21

        //Crashlytics will generate a new build id for every build.
        //This can (and should) be disabled for debug builds with a single line:
        ext.alwaysUpdateBuildId = false
    }

    dev {
        dimension "flavor"
        ...
    }

    market {
        dimension "flavor"
        ...
    }
}

      

This creates the following buildVariants:

build options

(I am filtering out fastMarket * combinations).

Problem

Based on the above definition, I expect the Crashlytics option to alwaysUpdateBuildId

be disabled only in variants fast*

.

However, when assembleSlowDevDebug

I run it I still see the following:

Detected alwaysUpdateBuildId set to false while obfuscation is enabled. This may result in obfuscated stack traces in Crashlytics.

Here's more gradle output:

Executing tasks: [:app:assembleSlowDevDebug]

Configuration on demand is an incubating feature.
NDK is missing a "platforms" directory.
If you are using NDK, verify the ndk.dir is set to a valid NDK directory.  It is currently set to /Users/aphex/Library/Android/sdk/ndk-bundle.
If you are not using NDK, unset the NDK variable from ANDROID_NDK_HOME or local.properties to remove this warning.

NDK is missing a "platforms" directory.
If you are using NDK, verify the ndk.dir is set to a valid NDK directory.  It is currently set to /Users/aphex/Library/Android/sdk/ndk-bundle.
If you are not using NDK, unset the NDK variable from ANDROID_NDK_HOME or local.properties to remove this warning.

Jack is disabled, but one of the plugins you are using supports Java 8 language features.
Jack is disabled, but one of the plugins you are using supports Java 8 language features.
Jack is disabled, but one of the plugins you are using supports Java 8 language features.
Jack is disabled, but one of the plugins you are using supports Java 8 language features.
Jack is disabled, but one of the plugins you are using supports Java 8 language features.
Jack is disabled, but one of the plugins you are using supports Java 8 language features.
The Task.leftShift(Closure) method has been deprecated and is scheduled to be removed in Gradle 5.0. Please use Task.doLast(Action) instead.
Detected alwaysUpdateBuildId set to false while obfuscation is enabled. This may result in obfuscated stack traces in Crashlytics.
Build cache is an incubating feature.
Using directory (/Users/aphex/.gradle/caches/build-cache-1) as local build cache, push is enabled.
:app:preBuild UP-TO-DATE
:app:preSlowDevDebugBuild UP-TO-DATE
...

      

I also confirmed this erroneous behavior by completely removing the line ext.alwaysUpdateBuildId = false

from the variant fast

and restarting assembleSlowDevDebug

. The line violation disappears. Detected alwaysUpdateBuildId set to false

Question

It doesn't make any sense based on my understanding of build options and product tastes. Is this a gradle bug, a Crashlytics / Fabric issue, or both? I am using gradle 3.5 and Android tools gradle plugin 2.3.3.

+3


source to share





All Articles