1. ภาพรวม
ยินดีต้อนรับสู่ Codelab การผสานรวม Firebase App Distribution SDK ในแอป Android ใน Codelab นี้ คุณจะได้เพิ่ม App Distribution Android SDK ลงในแอปเพื่อแสดงการแจ้งเตือนในแอปต่อผู้ทดสอบเมื่อมีบิลด์ใหม่ให้ดาวน์โหลด คุณจะได้เรียนรู้วิธีใช้ทั้งการกำหนดค่าพื้นฐานและการกำหนดค่าที่กำหนดเองเพื่อให้ผู้ทดสอบลงชื่อเข้าใช้เพื่อรับข้อมูลอัปเดต จากนั้นคุณจะพุชรุ่นใหม่ไปยัง App Distribution และทริกเกอร์การแจ้งเตือนบิลด์ใหม่ในแอปได้โดยตรง
สิ่งที่คุณจะได้เรียนรู้
- วิธีใช้ App Distribution เพื่อแจกจ่ายแอปเวอร์ชันทดลองให้ผู้ทดสอบ
- วิธีผสานรวม App Distribution Android SDK เข้ากับแอป
- วิธีแจ้งเตือนผู้ทดสอบเมื่อมีบิลด์ก่อนเผยแพร่ใหม่พร้อมให้ติดตั้ง
- วิธีปรับแต่ง SDK ให้เหมาะกับความต้องการในการทดสอบ
สิ่งที่คุณต้องมี
- Android Studio เวอร์ชันล่าสุด
- โค้ดตัวอย่าง
- อุปกรณ์ทดสอบที่ใช้ Android 4.4 ขึ้นไปและบริการ Google Play 9.8 ขึ้นไป หรือโปรแกรมจำลองที่มีบริการ Google Play 9.8 ขึ้นไป
- หากใช้อุปกรณ์ ให้ใช้สายเชื่อมต่อ
คุณจะใช้บทแนะนำนี้อย่างไร
คุณจะให้คะแนนประสบการณ์ในการสร้างแอป Android เท่าใด
2. รับโค้ดตัวอย่าง
โคลนที่เก็บ GitHub จากบรรทัดคำสั่ง
$ git clone https://github.com/FirebaseExtended/codelab-appdistribution-android.git
หากไม่ได้ติดตั้ง Git คุณยังดาวน์โหลดโปรเจ็กต์ตัวอย่างได้จากหน้า GitHub หรือโดยคลิกลิงก์นี้
3. นำเข้าแอปเริ่มต้น
จาก Android Studio ให้เลือกไดเรกทอรี codelab-appdistribution-android/start
( ) จากการดาวน์โหลดโค้ดตัวอย่าง (File > Open > .../codelab-appdistribution-android/start)
ตอนนี้คุณควรเปิดโปรเจ็กต์เริ่มต้นใน Android Studio แล้ว
4. สร้างและตั้งค่าโปรเจ็กต์ Firebase
สร้างโปรเจ็กต์ Firebase ใหม่
- ลงชื่อเข้าใช้คอนโซล Firebase โดยใช้บัญชี Google
- คลิกปุ่มเพื่อสร้างโปรเจ็กต์ใหม่ แล้วป้อนชื่อโปรเจ็กต์ (เช่น
App Distribution Codelab
) - คลิกต่อไป
- หากได้รับแจ้ง ให้อ่านและยอมรับข้อกำหนดของ Firebase แล้วคลิกต่อไป
- (ไม่บังคับ) เปิดใช้ความช่วยเหลือจาก AI ในคอนโซล Firebase (เรียกว่า "Gemini ใน Firebase")
- สำหรับ Codelab นี้ คุณไม่จำเป็นต้องใช้ Google Analytics ดังนั้นให้ปิดตัวเลือก Google Analytics
- คลิกสร้างโปรเจ็กต์ รอให้ระบบจัดสรรโปรเจ็กต์ แล้วคลิกดำเนินการต่อ
เพิ่มแอปไปยัง Firebase
ลงทะเบียนแอปกับ Firebase ใช้ "com.google.firebase.appdistributioncodelab" เป็นชื่อแพ็กเกจ
เพิ่มไฟล์ google-services.json ลงในแอป
หลังจากเพิ่มชื่อแพ็กเกจและเลือก "ลงทะเบียน" แล้ว ให้ทำตามขั้นตอนต่อไปนี้เพื่อเพิ่ม google-services.json ลงในแอป
- คลิกดาวน์โหลด google-services.json เพื่อรับไฟล์กำหนดค่า Firebase Android
- คัดลอกไฟล์ google-services.json ไปยังไดเรกทอรี
app
ในโปรเจ็กต์ - หลังจากดาวน์โหลดไฟล์แล้ว คุณสามารถข้ามขั้นตอนถัดไปที่แสดงในคอนโซลได้ (ระบบได้ดำเนินการให้คุณแล้วในโปรเจ็กต์ build-android-start)
อัปเดตรหัสแอปให้ตรงกับแอป Firebase
- ในเมนูด้านซ้าย (แท็บโปรเจ็กต์) ให้ตรวจสอบว่าคุณอยู่ในมุมมอง "Android" แล้วค้นหาแท็บ "Gradle Scripts" และเปิดไฟล์ Gradle ของโมดูล (ระดับแอป) (โดยปกติคือ
app/build.gradle.kts
) - เปลี่ยนพร็อพเพอร์ตี้
applicationId
ให้ตรงกับรหัสแอปพลิเคชันของแอป Firebase ซึ่งควรเป็น "com.google.firebase.appdistributioncodelab"
ซิงค์โปรเจ็กต์กับไฟล์ Gradle
หากต้องการให้แน่ใจว่าแอปมีทรัพยากร Dependency ทั้งหมด ให้ซิงค์โปรเจ็กต์กับไฟล์ Gradle โดยเลือกไฟล์ > ซิงค์โปรเจ็กต์กับไฟล์ Gradle จากแถบเครื่องมือของ Android Studio
5. ตั้งค่าการแจ้งเตือนบิลด์ใหม่ในแอปด้วย Android SDK ของ App Distribution
ในขั้นตอนนี้ คุณจะเพิ่ม Firebase App Distribution Android SDK ลงในแอปและแสดงการแจ้งเตือนในแอปต่อผู้ทดสอบเมื่อมีบิลด์ใหม่ของแอปพร้อมให้ติดตั้ง โดยตรวจสอบว่าคุณได้เปิดใช้ Firebase App Testers API สำหรับโปรเจ็กต์ "Firebase Codelab" (ใน Google Cloud Console) แล้ว คุณต้องลงชื่อเข้าใช้ด้วยบัญชีเดียวกันและเลือกโปรเจ็กต์ที่ถูกต้องจากเมนูแบบเลื่อนลงที่ด้านบน
กำหนดค่าการแจ้งเตือนในแอป
Android SDK ของ App Distribution มีวิธีตั้งค่าการแจ้งเตือนบิลด์ในแอปสำหรับผู้ทดสอบ 2 วิธี ดังนี้
- การกำหนดค่าการแจ้งเตือนพื้นฐาน ซึ่งมาพร้อมกับกล่องโต้ตอบที่สร้างไว้ล่วงหน้าเพื่อแสดงต่อผู้ทดสอบ
- การกำหนดค่าการแจ้งเตือนขั้นสูง ซึ่งช่วยให้คุณปรับแต่งอินเทอร์เฟซผู้ใช้ (UI) ได้
เราจะเริ่มด้วยการกำหนดค่าการแจ้งเตือนพื้นฐาน คุณสามารถใช้ updateIfNewReleaseAvailable
เพื่อแสดงกล่องโต้ตอบเปิดใช้การแจ้งเตือนที่สร้างไว้ล่วงหน้าต่อผู้ทดสอบที่ยังไม่ได้เปิดใช้การแจ้งเตือน จากนั้นตรวจสอบว่ามีบิลด์ใหม่พร้อมใช้งานหรือไม่ ผู้ทดสอบจะเปิดใช้การแจ้งเตือนได้โดยลงชื่อเข้าใช้บัญชีที่มีสิทธิ์เข้าถึงแอปใน App Distribution เมื่อเรียกใช้ เมธอดจะดำเนินการตามลำดับต่อไปนี้
- ตรวจสอบว่าผู้ทดสอบเปิดใช้การแจ้งเตือนหรือไม่ หากไม่ได้ระบุไว้ วิธีการจะแสดงกล่องโต้ตอบที่สร้างไว้ล่วงหน้าซึ่งแจ้งให้ผู้ทดสอบลงชื่อเข้าใช้ App Distribution ด้วยบัญชี Google
การเปิดใช้การแจ้งเตือนเป็นกระบวนการแบบครั้งเดียวในอุปกรณ์ทดสอบซึ่งจะยังคงอยู่ในการอัปเดตแอป การแจ้งเตือนจะยังคงเปิดใช้อยู่ในอุปกรณ์ทดสอบจนกว่าจะมีการถอนการติดตั้งแอปหรือจนกว่าจะมีการเรียกใช้เมธอด signOutTester
- ตรวจสอบบิลด์ใหม่ที่พร้อมให้ผู้ทดสอบติดตั้ง
- แสดงการแจ้งเตือนที่สร้างไว้ล่วงหน้าซึ่งแจ้งให้ผู้ทดสอบดาวน์โหลดรุ่นล่าสุด
- ตรวจสอบประเภทบิลด์ใหม่ก่อนดำเนินการอัปเดต
- หากบิลด์ใหม่เป็น App Bundle (AAB) ระบบจะเปลี่ยนเส้นทางผู้ทดสอบไปยัง Play Store เพื่อดำเนินการอัปเดตให้เสร็จสมบูรณ์
- หากบิลด์ใหม่เป็น APK ทาง SDK จะดาวน์โหลดบิลด์ใหม่ในเบื้องหลังและแจ้งให้ผู้ทดสอบติดตั้งบิลด์ใหม่เมื่อดาวน์โหลดเสร็จสมบูรณ์ SDK จะส่งการแจ้งเตือนความคืบหน้าในการดาวน์โหลดไปยังผู้ใช้โดยใช้
NotificationManager.
คุณเพิ่มตัวบ่งชี้ความคืบหน้าของคุณเองได้โดยแนบแฮนเดิลonProgressUpdate
ไปยังงานupdateIfNewReleaseAvailable
คุณเรียกใช้ updateIfNewReleaseAvailable()
ได้ทุกเมื่อในแอป ตัวอย่างเช่น คุณเรียกใช้ updateIfNewReleaseAvailable()
ในระหว่างเมธอด onResume()
ของ MainActivity ได้ดังนี้
เปิด MainActivity.kt แล้วสร้างเมธอด onResume()
ดังนี้
MainActivity.kt
override fun onResume() {
super.onResume()
checkForUpdate()
}
ตอนนี้เรามาใช้เมธอด checkForUpdate()
กัน
MainActivity.kt
private fun checkForUpdate() {
firebaseAppDistribution.updateIfNewReleaseAvailable()
.addOnProgressListener { updateProgress ->
// (Optional) Implement custom progress updates in addition to
// automatic NotificationManager updates.
}
.addOnFailureListener { e ->
if (e is FirebaseAppDistributionException) {
// Handle exception.
}
}
}
6. สร้างและเชิญผู้ทดสอบให้ดาวน์โหลดแอป
ในขั้นตอนนี้ คุณจะสร้างแอปและทดสอบการติดตั้งใช้งานโดยเผยแพร่บิลด์ไปยังผู้ทดสอบโดยใช้คอนโซล Firebase
สร้างแอป
เมื่อพร้อมที่จะเผยแพร่แอปเวอร์ชันทดลองให้ผู้ทดสอบแล้ว ให้สร้าง APK โดยใช้กระบวนการปกติ คุณต้องลงนาม APK ด้วยคีย์การแก้ไขข้อบกพร่องหรือคีย์ App Signing
เผยแพร่แอปไปยังผู้ทดสอบ
หากต้องการเผยแพร่แอปไปยังผู้ทดสอบ ให้อัปโหลดไฟล์ APK โดยใช้คอนโซล Firebase ดังนี้
- เปิดหน้า App Distribution ของคอนโซล Firebase เลือกโปรเจ็กต์ Firebase เมื่อได้รับข้อความแจ้ง
- ในหน้าผลงาน ให้เลือกแอปที่ต้องการเผยแพร่จากเมนูแบบเลื่อนลง
- คลิกเริ่มต้นใช้งาน
- ลากไฟล์ APK ของแอปไปยังคอนโซลเพื่ออัปโหลด
- เมื่ออัปโหลดเสร็จสมบูรณ์แล้ว ให้ระบุกลุ่มผู้ทดสอบและผู้ทดสอบแต่ละรายที่คุณต้องการให้รับบิลด์ (เพิ่มอีเมลเพื่อรับคำเชิญ) จากนั้นเพิ่มบันทึกประจำรุ่นสำหรับบิลด์ ดูข้อมูลเพิ่มเติมเกี่ยวกับการสร้างกลุ่มผู้ทดสอบได้ที่เพิ่มและนำผู้ทดสอบออก
- คลิกเผยแพร่เพื่อให้ผู้ทดสอบใช้บิลด์ได้
ตอนนี้คุณจะเห็นผู้ทดสอบที่เพิ่มไว้ในการเผยแพร่แอปในคอนโซล Firebase
เนื่องจากคุณระบุอีเมลไว้ คุณจะได้รับอีเมลจาก Firebase App Distribution ที่เชิญให้ทดสอบแอป ตอนนี้คุณเป็นผู้ทดสอบคนแรกแล้ว ทำตามวิธีการในยอมรับคำเชิญเพื่อตั้งค่าเป็นผู้ทดสอบในอุปกรณ์ทดสอบ
ยอมรับคำเชิญ
คุณจะต้องยอมรับคำเชิญเพื่อดาวน์โหลดและทดสอบรุ่นก่อน
- เปิดอีเมลที่ส่งจาก Firebase App Distribution ในอุปกรณ์ทดสอบ Android แล้วแตะเริ่มต้นใช้งาน
- ในเว็บแอปสำหรับผู้ทดสอบ Firebase App Distribution ที่ปรากฏขึ้น ให้ลงชื่อเข้าใช้ด้วยบัญชี Google แล้วแตะยอมรับคำเชิญ ตอนนี้คุณจะเห็นรุ่นที่คุณได้รับเชิญให้ทดสอบแล้ว
ดาวน์โหลดรุ่นจากอุปกรณ์ทดสอบ
เมื่อไปที่แอป AppDistribution Codelab คุณจะเห็นว่ารุ่นพร้อมให้ดาวน์โหลดแล้ว
- แตะดาวน์โหลด จากนั้นติดตั้งและเรียกใช้แอป
- เมื่อแอปเริ่มทำงาน แอปจะขอให้คุณเปิดใช้การแจ้งเตือนบิลด์ใหม่ แตะเปิด
- ลงชื่อเข้าใช้ด้วยบัญชีผู้ทดสอบ
ระบบจะนำคุณกลับไปที่แอป ในครั้งถัดไปที่คุณเรียกใช้แอป คุณไม่จำเป็นต้องลงชื่อเข้าใช้หรือยอมรับการแจ้งเตือน
แจกจ่ายการอัปเดตให้ผู้ทดสอบ
- อัปเดต versionName เป็น "1.1" และ versionCode เป็น 2 ในไฟล์ Gradle ของโมดูล (ระดับแอป) (โดยมากจะเป็นไฟล์ app/build.gradle)
- สร้าง APK โดยใช้กระบวนการปกติ คุณต้องลงนาม APK ด้วยคีย์การแก้ไขข้อบกพร่องหรือคีย์ App Signing
- อัปโหลด APK ใหม่นี้ในคอนโซล Firebase เพิ่มอีเมลของคุณเป็นผู้ทดสอบอีกครั้ง แล้วคลิกแจกจ่าย
การแจ้งเตือนเกี่ยวกับบิลด์ทดสอบ
- ตรวจสอบว่าคุณได้ปิดแอปแล้วหากเปิดอยู่
- รีสตาร์ทแอป
- เมื่อแอปรีสตาร์ท คุณจะได้รับการแจ้งเตือนว่ามีเวอร์ชันใหม่พร้อมใช้งาน
- หากต้องการรับเวอร์ชันล่าสุด ให้คลิกอัปเดต
- หากได้รับแจ้ง ให้เลือกตัวเลือกเพื่อเปิดใช้การติดตั้งจากแหล่งที่มาที่ไม่รู้จัก
- คลิกติดตั้ง (หรืออัปเดต) ในหน้าจอถัดไป
- ยินดีด้วย คุณอัปเดตแอปได้โดยใช้การแจ้งเตือนในตัว
7. ปรับแต่งการลงชื่อเข้าใช้ของผู้ทดสอบ
เมธอด signInTester/signOutTester และ isTesterSignedIn ช่วยให้คุณปรับแต่งประสบการณ์การลงชื่อเข้าใช้ของผู้ทดสอบได้อย่างยืดหยุ่นมากขึ้น เพื่อให้สอดคล้องกับรูปลักษณ์ของแอปได้ดียิ่งขึ้น
ตัวอย่างต่อไปนี้จะตรวจสอบว่าผู้ทดสอบได้ลงชื่อเข้าใช้บัญชีผู้ทดสอบ Firebase App Distribution แล้วหรือไม่ เพื่อให้คุณเลือกแสดง UI การลงชื่อเข้าใช้เฉพาะผู้ทดสอบที่ยังไม่ได้ลงชื่อเข้าใช้ หลังจากผู้ทดสอบลงชื่อเข้าใช้แล้ว คุณจะเรียกใช้ checkForUpdate เพื่อตรวจสอบว่าผู้ทดสอบมีสิทธิ์เข้าถึงบิลด์ใหม่หรือไม่
มาปิดใช้การตรวจหาการอัปเดตโดยอัตโนมัติใน onResume โดยการแสดงความคิดเห็นในการเรียก checkForUpdate() กัน
MainActivity.kt
override fun onResume() {
super.onResume()
//checkForupdate()
}
แต่ระบบได้เพิ่ม checkForUpdate() ไว้ใน OnClickListener ของ updatebutton แล้ว
ตอนนี้เรามาใช้เมธอด signIn() ซึ่งจะลงชื่อเข้าใช้ผู้ใช้หากผู้ใช้ไม่ได้ลงชื่อเข้าใช้ หรือลงชื่อออกจากระบบหากผู้ใช้ลงชื่อเข้าใช้แล้ว
MainActivity.kt
private fun signIn() {
if (isTesterSignedIn()) {
firebaseAppDistribution.signOutTester()
configureUpdateButton()
configureSigninButton()
} else {
firebaseAppDistribution.signInTester()
}
}
สุดท้าย ให้ใช้เมธอด isTesterSignedIn
MainActivity.kt
private fun isTesterSignedIn() : Boolean {
return firebaseAppDistribution.isTesterSignedIn
}
สร้างและทดสอบการใช้งาน
8. ยินดีด้วย
คุณได้สร้างฟีเจอร์ "การแสดงการแจ้งเตือนในแอป" ลงในแอปโดยใช้ Android SDK ของ Firebase App Distribution
สิ่งที่เราได้พูดถึงไปแล้ว
- Firebase App Distribution
- Firebase App Distribution New Alerts Android SDK
ขั้นตอนถัดไป
ดูข้อมูลเพิ่มเติม
หากมีคำถาม
รายงานปัญหา