在firebase上使用Dev和生产环境创建Tow项目
从thre下载json文件
并设置SDK: https://firebase.google.com/docs/android/setup或Crashlytics: https://firebase.google.com/docs/crashlytics/get-started?platform=android
首先,放置各自的google_services。json为每个buildType在以下位置:
app/src/debug/google_services.json
app/src/test/google_services.json
app/google_services.json
注:根app/google_services。这个文件应该根据构建变量在根json文件中复制json代码
现在,让我们在你的:app的构建中创建一些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或:assemblerrelease运行之前的某个时间运行上述适当的复制任务。让我们看看当:assemblerrelease运行时会发生什么:在/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都会被预先调用。同样的逻辑用于调试buildType。您可以运行:app: assemblerrelease和发布版本google_services。Json会自动复制到你的应用模块的根文件夹。