สร้างโครงการ Tow ด้วย Dev และ Production Environment บน firebase ดาวน์โหลดไฟล์ json จาก thre
และตั้งค่า 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
หมายเหตุ: รูทแอป / google_services.json ไฟล์นี้ควรอยู่ที่นั่นตามรุ่นบิลด์ที่คัดลอกโค้ด json ในไฟล์รูท json
ตอนนี้เรามาทำภารกิจการไล่ระดับสีใน: build.gradle ของแอพเพื่อย้าย google_services.json ที่เหมาะสมไปยัง app / google_services.json
คัดลอกสิ่งนี้ในไฟล์แอพ / 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
สังเกตเห็นงาน: แอพ: processReleaseGoogleServices งานนี้รับผิดชอบการประมวลผลไฟล์รูท google_services.json เราต้องการให้ประมวลผล google_services.json ที่ถูกต้องดังนั้นเราจึงต้องเรียกใช้งานการคัดลอกของเราทันทีก่อน เพิ่มสิ่งนี้ไปยัง build.gradle ของคุณ หมายเหตุ afterEvaluate ล้อมรอบ
คัดลอกสิ่งนี้ในไฟล์แอพ / Gradle
afterEvaluate {
processDebugGoogleServices.dependsOn switchToDebug
processReleaseGoogleServices.dependsOn switchToRelease
}
ตอนนี้ทุกที่ทุกเวลา: app: processRelease เรียกว่า GoogleServices ชื่อที่กำหนดใหม่ของเรา: app: switchToRelease จะถูกเรียกก่อน ตรรกะเดียวกันสำหรับ debug buildType คุณสามารถเรียกใช้: แอพ: assembleRelease และรุ่นวางจำหน่าย google_services.json จะถูกคัดลอกไปยังโฟลเดอร์รูทของโมดูลแอปโดยอัตโนมัติ