Last active
July 10, 2019 04:42
-
-
Save alexsinger/2b5b1b7ae2d2fca1ffdb to your computer and use it in GitHub Desktop.
Separate Crashlytics reporting for debug and release buildTypes using a Gradle build
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// The following code allows an app to report Crashlytics crashes separately | |
// for release and debug buildTypes when using Gradle. This code should be inserted | |
// into the specified locations within your build.gradle (Module:app) file | |
// The buildTypes { } block should be inserted inside the android { } block | |
buildTypes { | |
release { | |
minifyEnabled false | |
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' | |
ext.crashlyticsApiSecret = "release api secret" | |
ext.crashlyticsApiKey = "release api key" | |
} | |
debug { | |
ext.crashlyticsApiSecret = "debug api secret" | |
ext.crashlyticsApiKey = "debug api key" | |
} | |
} | |
// The following code can be inserted at the bottom of your build.gradle file | |
import com.crashlytics.tools.utils.PropertiesUtils | |
File crashlyticsProperties = new File("${project.projectDir.absolutePath}/fabric.properties") | |
android.applicationVariants.all { variant -> | |
def variantSuffix = variant.name.capitalize() | |
def generateResourcesTask = project.tasks.getByName("fabricGenerateResources${variantSuffix}") | |
def generatePropertiesTask = task("fabricGenerateProperties${variantSuffix}") << { | |
Properties properties = new Properties() | |
println "...copying apiSecret for ${variant.name}" | |
properties.put("apiSecret", variant.buildType.ext.crashlyticsApiSecret) | |
println "...copying apiKey for ${variant.name}" | |
properties.put("apiKey", variant.buildType.ext.crashlyticsApiKey) | |
PropertiesUtils.injectPropertyInFile(crashlyticsProperties, properties, "") | |
} | |
generateResourcesTask.dependsOn generatePropertiesTask | |
} |
@DmitriyYakovlev, you can get the crashlyticsApiSecret on
Select your desired organisation and right bellow the name of your organization you will find API key and Build Secret.
Hope it helps.
If you get an error like could not find method leftshift()
after applying the above thing then.
Replace leftshift(<<) with doLast
.
import com.crashlytics.tools.utils.PropertiesUtils
File crashlyticsProperties = new File("${project.projectDir.absolutePath}/fabric.properties")
android.applicationVariants.all { variant ->
def variantSuffix = variant.name.capitalize()
def generateResourcesTask = project.tasks.getByName("fabricGenerateResources${variantSuffix}")
def generatePropertiesTask = task("fabricGenerateProperties${variantSuffix}") doLast {
Properties properties = new Properties()
println "...copying apiSecret for ${variant.name}"
properties.put("apiSecret", variant.buildType.ext.crashlyticsApiSecret)
println "...copying apiKey for ${variant.name}"
properties.put("apiKey", variant.buildType.ext.crashlyticsApiKey)
PropertiesUtils.injectPropertyInFile(crashlyticsProperties, properties, "")
}
generateResourcesTask.dependsOn generatePropertiesTask
}
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Hi.
Can you please, specify where to get crashlyticsApiSecret. I can see where to get crashlyticsApiKey. For example, with using of fabric plugin for IDE