1. ภาพรวม
ยินดีต้อนรับสู่การผสานรวม Firebase App Distribution SDK ใน Codelab ของแอป Android ใน Codelab นี้ คุณจะต้องเพิ่ม SDK สำหรับ Android ของ App Distribution ลงในแอปเพื่อแสดงการแจ้งเตือนในแอปแก่ผู้ทดสอบเมื่อมีบิลด์ใหม่ให้ดาวน์โหลด คุณจะได้เรียนรู้วิธีใช้ทั้งการกำหนดค่าพื้นฐานและการกำหนดค่าที่กำหนดเองเพื่อให้ผู้ทดสอบลงชื่อเข้าใช้และรับการอัปเดต จากนั้นคุณจะพุชรุ่นใหม่ไปยัง 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
( ) จากตัวอย่างการดาวน์โหลดโค้ด (ไฟล์ > เปิด > .../codelab-appdistribution-android/start)
ตอนนี้คุณควรเปิดโปรเจ็กต์เริ่มต้นใน Android Studio แล้ว
4. สร้างโปรเจ็กต์คอนโซล Firebase
เพิ่มโปรเจ็กต์ Firebase ใหม่
- เปิดคอนโซล Firebase
- เลือกเพิ่มโปรเจ็กต์ แล้วตั้งชื่อโปรเจ็กต์ของคุณว่า "Firebase Codelab"
คุณไม่จำเป็นต้องเปิดใช้ Google Analytics สำหรับโปรเจ็กต์นี้
- คลิกสร้างโครงการ
เพิ่มแอปลงใน Firebase
ลงทะเบียนแอปกับ Firebase ใช้ "com.google.firebase.appdistributioncodelab" เป็นชื่อแพ็กเกจ
เพิ่มไฟล์ google-services.json ในแอป
หลังจากเพิ่มชื่อแพ็กเกจและเลือก "ลงทะเบียน" แล้ว ให้ทำตามขั้นตอนต่อไปนี้เพื่อเพิ่ม google-services.json ในแอปของคุณ
- คลิกดาวน์โหลด google-services.json เพื่อรับไฟล์การกำหนดค่า Firebase สำหรับ Android
- คัดลอกไฟล์ google-services.json ไปยังไดเรกทอรี
app
ในโปรเจ็กต์ของคุณ - หลังจากดาวน์โหลดไฟล์แล้ว คุณจะข้ามขั้นตอนถัดไปที่แสดงในคอนโซลได้ (ดำเนินการให้คุณแล้วในโปรเจ็กต์บิลด์ Android-start)
อัปเดตรหัสแอปพลิเคชันให้ตรงกับแอป Firebase
- ในเมนูด้านซ้าย (แท็บโปรเจ็กต์) ให้ตรวจสอบว่าคุณกำลังใช้ "Android" ดูและค้นหา "สคริปต์ Gradle" Tab และเปิดไฟล์ Gradle โมดูล (ระดับแอป) ของคุณ (โดยปกติคือ
app/build.gradle.kts
) - เปลี่ยนพร็อพเพอร์ตี้
applicationId
ให้ตรงกับรหัสแอปพลิเคชันของแอป Firebase ควรเป็น "com.google.firebase.appdistributioncodelab"
ซิงค์โปรเจ็กต์กับไฟล์ Gradle
หากต้องการตรวจสอบว่าทรัพยากร Dependency ทั้งหมดพร้อมใช้งานสำหรับแอปของคุณ ให้ซิงค์โปรเจ็กต์กับไฟล์ Gradle โดยเลือก File > ซิงค์โปรเจ็กต์ด้วยไฟล์ Gradle จากแถบเครื่องมือของ Android Studio
5. ตั้งค่าการแจ้งเตือนบิลด์ใหม่ในแอปด้วย Android SDK สำหรับ App Distribution
ในขั้นตอนนี้ คุณจะเพิ่ม Firebase App Distribution Android SDK ลงในแอปและแสดงการแจ้งเตือนในแอปแก่ผู้ทดสอบเมื่อมีแอปรุ่นใหม่พร้อมให้ติดตั้ง ซึ่งทำได้โดยเปิดใช้ Firebase App Testers API ให้กับ "Firebase Codelab" โปรเจ็กต์ (ในคอนโซล Google Cloud) คุณจำเป็นต้องลงชื่อเข้าใช้ด้วยบัญชีเดียวกันและเลือกโปรเจ็กต์ที่ถูกต้องจากเมนูแบบเลื่อนลงที่ด้านบน
กำหนดค่าการแจ้งเตือนในแอป
App Distribution Android SDK มอบ 2 วิธีในการตั้งค่าการแจ้งเตือนบิลด์ในแอปให้กับผู้ทดสอบ
- การกำหนดค่าการแจ้งเตือนพื้นฐานที่มาพร้อมกับกล่องโต้ตอบที่สร้างไว้ล่วงหน้าเพื่อแสดงต่อผู้ทดสอบ
- การกำหนดค่าการแจ้งเตือนขั้นสูง ซึ่งให้คุณปรับแต่งอินเทอร์เฟซผู้ใช้ (UI) ของคุณ
เราจะเริ่มด้วยการกำหนดค่าการแจ้งเตือนพื้นฐาน คุณสามารถใช้ updateIfNewReleaseAvailable
เพื่อแสดงกล่องโต้ตอบการแจ้งเตือนการเปิดใช้งานที่สร้างไว้ล่วงหน้าแก่ผู้ทดสอบที่ยังไม่ได้เปิดใช้การแจ้งเตือน จากนั้นตรวจสอบว่ามีรุ่นใหม่พร้อมใช้งานหรือไม่ ผู้ทดสอบจะเปิดใช้การแจ้งเตือนโดยลงชื่อเข้าใช้บัญชีที่มีสิทธิ์เข้าถึงแอปใน App Distribution เมื่อเรียกใช้ เมธอดจะออกลำดับต่อไปนี้
- ตรวจสอบว่าผู้ทดสอบเปิดใช้การแจ้งเตือนไว้หรือไม่ แต่หากไม่มี เมธอดจะแสดงกล่องโต้ตอบที่สร้างไว้ล่วงหน้าซึ่งแจ้งให้ผู้ทดสอบลงชื่อเข้าใช้ App Distribution ด้วยบัญชี Google
การเปิดใช้การแจ้งเตือนเป็นกระบวนการแบบครั้งเดียวในอุปกรณ์ทดสอบที่คงอยู่ตลอดการอัปเดตแอป การแจ้งเตือนจะยังคงเปิดใช้ในอุปกรณ์ทดสอบจนกว่าจะมีการถอนการติดตั้งแอป หรือจนกว่าจะมีการเรียกใช้เมธอด signOutTester
- ตรวจสอบบิลด์ที่เพิ่งพร้อมใช้งานเพื่อให้ผู้ทดสอบติดตั้ง
- แสดงการแจ้งเตือนที่สร้างไว้ล่วงหน้าเพื่อบอกให้ผู้ทดสอบดาวน์โหลดรุ่นล่าสุด
- ตรวจสอบประเภทบิลด์ใหม่ก่อนอัปเดตต่อ
- หากเวอร์ชันใหม่เป็น App Bundle (AAB) ให้เปลี่ยนเส้นทางผู้ทดสอบไปยัง Play Store เพื่อดำเนินการอัปเดตให้เสร็จสมบูรณ์
- หากบิลด์ใหม่เป็น APK SDK จะดาวน์โหลดบิลด์ใหม่ในเบื้องหลังและแจ้งให้ผู้ทดสอบติดตั้งบิลด์ใหม่เมื่อดาวน์โหลดเสร็จแล้ว SDK จะส่งการแจ้งเตือนความคืบหน้าในการดาวน์โหลดไปยังผู้ใช้โดยใช้
NotificationManager.
คุณเพิ่มตัวบ่งชี้ความคืบหน้าของคุณเองได้โดยแนบเครื่องจัดการonProgressUpdate
ไว้ในงานupdateIfNewReleaseAvailable
คุณจะโทรหา updateIfNewReleaseAvailable()
ได้ทุกเมื่อในแอป ตัวอย่างเช่น คุณสามารถเรียกใช้ updateIfNewReleaseAvailable()
ในระหว่าง onResume()
เมธอดของกิจกรรมหลัก:
เปิด 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 ที่เชิญให้คุณทดสอบแอป ตอนนี้คุณเป็นผู้ทดสอบคนแรกแล้ว ทำตามวิธีการในส่วน "ยอมรับคำเชิญ" เพื่อตั้งค่าเป็นผู้ทดสอบในอุปกรณ์ทดสอบ
ยอมรับคำเชิญ
ก่อนอื่น คุณจะต้องยอมรับคำเชิญเพื่อดาวน์โหลดและทดสอบรุ่น
- ในอุปกรณ์ทดสอบ Android ให้เปิดอีเมลที่ส่งจาก Firebase App Distribution แล้วแตะเริ่มต้นใช้งาน
- ในเว็บแอปของผู้ทดสอบ Firebase App Distribution ที่ปรากฏขึ้น ให้ลงชื่อเข้าใช้ด้วยบัญชี Google แล้วแตะยอมรับคำเชิญ ตอนนี้คุณจะเห็นรุ่นที่ได้รับเชิญให้ทดสอบ
ดาวน์โหลดรุ่นจากอุปกรณ์ทดสอบ
เมื่อไปที่แอป App Distribution Lab คุณจะเห็นว่ารุ่นดังกล่าวพร้อมให้ดาวน์โหลดแล้ว
- แตะดาวน์โหลด จากนั้นติดตั้งและเรียกใช้แอป
- เมื่อแอปเริ่มทำงาน แอปจะขอให้คุณเปิดใช้การแจ้งเตือนเกี่ยวกับบิลด์ใหม่ แตะเปิด
- ลงชื่อเข้าใช้ด้วยบัญชีผู้ทดสอบ
คุณจะกลับไปยังแอป คุณไม่จำเป็นต้องลงชื่อเข้าใช้หรือยอมรับการแจ้งเตือนเมื่อเรียกใช้แอปครั้งถัดไป
เผยแพร่อัปเดตให้ผู้ทดสอบ
- อัปเดต 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. ยินดีด้วย
คุณได้สร้าง "การแสดงการแจ้งเตือนในแอป" ลงในแอปโดยใช้ Firebase App Distribution Android SDK
สรุปประเด็นที่ได้พูดถึง
- Firebase App Distribution
- การแจ้งเตือนใหม่สำหรับ Android SDK ของ Firebase App Distribution
ขั้นตอนถัดไป
ดูข้อมูลเพิ่มเติม
หากมีคำถาม
รายงานปัญหา