创建Firebase上的Dev和Production环境下的Tow项目,并从thre下载json文件。
根据以下步骤设置SDK:
https://firebase.google.com/docs/android/setup 或者针对Crashlytics:
https://firebase.google.com/docs/crashlytics/get-started?platform=android
首先,在以下位置放置每个buildType对应的google_services.json文件。
app/src/debug/google_services.json
app/src/test/google_services.json
app/google_services.json
注意:根目录下应该有一个名为app/google_services.json的文件,根据构建变量复制json代码到根json文件中。
现在,在您的应用程序的build.gradle文件中编写一些gradle任务,以自动将适当的google_services.json移动到app/google_services.json。
将此代码复制到app/Gradle文件中。
task switchToDebug(type: Copy) {
description = 'Switches to DEBUG google-services.json'
from "src/debug"
include "google-services.json"
into "."
}
task switchToRelease(type: Copy) {
description = 'Switches to RELEASE google-services.json'
from "src/release"
include "google-services.json"
into "."
}
很好 - 但在构建应用程序之前手动运行这些任务很麻烦。我们希望适当的复制任务能够在运行assembleDebug或:assembleRelease之前的某个时间运行。让我们看看在运行:assembleRelease时会发生什么:将此复制到/gradlew文件中。
Zaks-MBP:my_awesome_application zak$ ./gradlew assembleRelease
Parallel execution is an incubating feature.
.... (other tasks)
:app:processReleaseGoogleServices
....
:app:assembleRelease
请注意:app:processReleaseGoogleServices任务。该任务负责处理根google_services.json文件。我们希望正确的google_services.json被处理,因此我们必须立即在之前运行我们的复制任务。
将此添加到您的build.gradle中。请注意afterEvaluate封装。
将其复制到app / Gradle文件中。
afterEvaluate {
processDebugGoogleServices.dependsOn switchToDebug
processReleaseGoogleServices.dependsOn switchToRelease
}
现在,每当调用 :app:processReleaseGoogleServices 时,我们新定义的 :app:switchToRelease 将首先被调用。debug buildType 的逻辑也是如此。您可以运行 :app:assembleRelease,然后 release 版本的 google_services.json 将自动复制到您的应用程序模块的根文件夹中。