แจ้งเตือนผู้ทดสอบเกี่ยวกับแอปรุ่นใหม่ของคุณด้วย Firebase App Distribution Android SDK - Codelab

1. ภาพรวม

c7a9160ef7b184c7.png 22e0b52f771c060d.png

ยินดีต้อนรับสู่ 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 ( android_studio_folder.png) จากการดาวน์โหลดโค้ดตัวอย่าง (File > Open > .../codelab-appdistribution-android/start)

ตอนนี้คุณควรเปิดโปรเจ็กต์เริ่มต้นใน Android Studio แล้ว

4. สร้างและตั้งค่าโปรเจ็กต์ Firebase

สร้างโปรเจ็กต์ Firebase ใหม่

  1. ลงชื่อเข้าใช้คอนโซล Firebase โดยใช้บัญชี Google
  2. คลิกปุ่มเพื่อสร้างโปรเจ็กต์ใหม่ แล้วป้อนชื่อโปรเจ็กต์ (เช่น App Distribution Codelab)
  3. คลิกต่อไป
  4. หากได้รับแจ้ง ให้อ่านและยอมรับข้อกำหนดของ Firebase แล้วคลิกต่อไป
  5. (ไม่บังคับ) เปิดใช้ความช่วยเหลือจาก AI ในคอนโซล Firebase (เรียกว่า "Gemini ใน Firebase")
  6. สำหรับ Codelab นี้ คุณไม่จำเป็นต้องใช้ Google Analytics ดังนั้นให้ปิดตัวเลือก Google Analytics
  7. คลิกสร้างโปรเจ็กต์ รอให้ระบบจัดสรรโปรเจ็กต์ แล้วคลิกดำเนินการต่อ

เพิ่มแอปไปยัง Firebase

ลงทะเบียนแอปกับ Firebase ใช้ "com.google.firebase.appdistributioncodelab" เป็นชื่อแพ็กเกจ

เพิ่มไฟล์ google-services.json ลงในแอป

หลังจากเพิ่มชื่อแพ็กเกจและเลือก "ลงทะเบียน" แล้ว ให้ทำตามขั้นตอนต่อไปนี้เพื่อเพิ่ม google-services.json ลงในแอป

  1. คลิกดาวน์โหลด google-services.json เพื่อรับไฟล์กำหนดค่า Firebase Android
  2. คัดลอกไฟล์ google-services.json ไปยังไดเรกทอรี app ในโปรเจ็กต์
  3. หลังจากดาวน์โหลดไฟล์แล้ว คุณสามารถข้ามขั้นตอนถัดไปที่แสดงในคอนโซลได้ (ระบบได้ดำเนินการให้คุณแล้วในโปรเจ็กต์ build-android-start)

อัปเดตรหัสแอปให้ตรงกับแอป Firebase

  1. ในเมนูด้านซ้าย (แท็บโปรเจ็กต์) ให้ตรวจสอบว่าคุณอยู่ในมุมมอง "Android" แล้วค้นหาแท็บ "Gradle Scripts" และเปิดไฟล์ Gradle ของโมดูล (ระดับแอป) (โดยปกติคือ app/build.gradle.kts)
  2. เปลี่ยนพร็อพเพอร์ตี้ 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 เมื่อเรียกใช้ เมธอดจะดำเนินการตามลำดับต่อไปนี้

  1. ตรวจสอบว่าผู้ทดสอบเปิดใช้การแจ้งเตือนหรือไม่ หากไม่ได้ระบุไว้ วิธีการจะแสดงกล่องโต้ตอบที่สร้างไว้ล่วงหน้าซึ่งแจ้งให้ผู้ทดสอบลงชื่อเข้าใช้ App Distribution ด้วยบัญชี Google

การเปิดใช้การแจ้งเตือนเป็นกระบวนการแบบครั้งเดียวในอุปกรณ์ทดสอบซึ่งจะยังคงอยู่ในการอัปเดตแอป การแจ้งเตือนจะยังคงเปิดใช้อยู่ในอุปกรณ์ทดสอบจนกว่าจะมีการถอนการติดตั้งแอปหรือจนกว่าจะมีการเรียกใช้เมธอด signOutTester

  1. ตรวจสอบบิลด์ใหม่ที่พร้อมให้ผู้ทดสอบติดตั้ง
  2. แสดงการแจ้งเตือนที่สร้างไว้ล่วงหน้าซึ่งแจ้งให้ผู้ทดสอบดาวน์โหลดรุ่นล่าสุด
  3. ตรวจสอบประเภทบิลด์ใหม่ก่อนดำเนินการอัปเดต
  4. หากบิลด์ใหม่เป็น App Bundle (AAB) ระบบจะเปลี่ยนเส้นทางผู้ทดสอบไปยัง Play Store เพื่อดำเนินการอัปเดตให้เสร็จสมบูรณ์
  5. หากบิลด์ใหม่เป็น 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 ดังนี้

  1. เปิดหน้า App Distribution ของคอนโซล Firebase เลือกโปรเจ็กต์ Firebase เมื่อได้รับข้อความแจ้ง
  2. ในหน้าผลงาน ให้เลือกแอปที่ต้องการเผยแพร่จากเมนูแบบเลื่อนลง

623460c3c8a82ce6.png

  1. คลิกเริ่มต้นใช้งาน

bf503b25066ff4a4.png

  1. ลากไฟล์ APK ของแอปไปยังคอนโซลเพื่ออัปโหลด
  2. เมื่ออัปโหลดเสร็จสมบูรณ์แล้ว ให้ระบุกลุ่มผู้ทดสอบและผู้ทดสอบแต่ละรายที่คุณต้องการให้รับบิลด์ (เพิ่มอีเมลเพื่อรับคำเชิญ) จากนั้นเพิ่มบันทึกประจำรุ่นสำหรับบิลด์ ดูข้อมูลเพิ่มเติมเกี่ยวกับการสร้างกลุ่มผู้ทดสอบได้ที่เพิ่มและนำผู้ทดสอบออก

3343048f0930e84b.png

  1. คลิกเผยแพร่เพื่อให้ผู้ทดสอบใช้บิลด์ได้

2be58fe195928bf9.png

ตอนนี้คุณจะเห็นผู้ทดสอบที่เพิ่มไว้ในการเผยแพร่แอปในคอนโซล Firebase

9935a41810344c61.png

เนื่องจากคุณระบุอีเมลไว้ คุณจะได้รับอีเมลจาก Firebase App Distribution ที่เชิญให้ทดสอบแอป ตอนนี้คุณเป็นผู้ทดสอบคนแรกแล้ว ทำตามวิธีการในยอมรับคำเชิญเพื่อตั้งค่าเป็นผู้ทดสอบในอุปกรณ์ทดสอบ

ยอมรับคำเชิญ

คุณจะต้องยอมรับคำเชิญเพื่อดาวน์โหลดและทดสอบรุ่นก่อน

  1. เปิดอีเมลที่ส่งจาก Firebase App Distribution ในอุปกรณ์ทดสอบ Android แล้วแตะเริ่มต้นใช้งาน
  2. ในเว็บแอปสำหรับผู้ทดสอบ Firebase App Distribution ที่ปรากฏขึ้น ให้ลงชื่อเข้าใช้ด้วยบัญชี Google แล้วแตะยอมรับคำเชิญ ตอนนี้คุณจะเห็นรุ่นที่คุณได้รับเชิญให้ทดสอบแล้ว

c18cb684f8e82ad6.png

ดาวน์โหลดรุ่นจากอุปกรณ์ทดสอบ

เมื่อไปที่แอป AppDistribution Codelab คุณจะเห็นว่ารุ่นพร้อมให้ดาวน์โหลดแล้ว

5414d9a536f25ece.png

  1. แตะดาวน์โหลด จากนั้นติดตั้งและเรียกใช้แอป
  2. เมื่อแอปเริ่มทำงาน แอปจะขอให้คุณเปิดใช้การแจ้งเตือนบิลด์ใหม่ แตะเปิด

b059e09acaa4779f.png

  1. ลงชื่อเข้าใช้ด้วยบัญชีผู้ทดสอบ

22e0b52f771c060d.png

ระบบจะนำคุณกลับไปที่แอป ในครั้งถัดไปที่คุณเรียกใช้แอป คุณไม่จำเป็นต้องลงชื่อเข้าใช้หรือยอมรับการแจ้งเตือน

c9f33df16a2680d.png

แจกจ่ายการอัปเดตให้ผู้ทดสอบ

  1. อัปเดต versionName เป็น "1.1" และ versionCode เป็น 2 ในไฟล์ Gradle ของโมดูล (ระดับแอป) (โดยมากจะเป็นไฟล์ app/build.gradle)
  2. สร้าง APK โดยใช้กระบวนการปกติ คุณต้องลงนาม APK ด้วยคีย์การแก้ไขข้อบกพร่องหรือคีย์ App Signing
  3. อัปโหลด APK ใหม่นี้ในคอนโซล Firebase เพิ่มอีเมลของคุณเป็นผู้ทดสอบอีกครั้ง แล้วคลิกแจกจ่าย

2dfa702edfdce6b8.png

การแจ้งเตือนเกี่ยวกับบิลด์ทดสอบ

  1. ตรวจสอบว่าคุณได้ปิดแอปแล้วหากเปิดอยู่
  2. รีสตาร์ทแอป
  3. เมื่อแอปรีสตาร์ท คุณจะได้รับการแจ้งเตือนว่ามีเวอร์ชันใหม่พร้อมใช้งาน

987e3d0ba4e56f84.png

  1. หากต้องการรับเวอร์ชันล่าสุด ให้คลิกอัปเดต
  2. หากได้รับแจ้ง ให้เลือกตัวเลือกเพื่อเปิดใช้การติดตั้งจากแหล่งที่มาที่ไม่รู้จัก
  3. คลิกติดตั้ง (หรืออัปเดต) ในหน้าจอถัดไป

a7c7cd15d60bc764.png

  1. ยินดีด้วย คุณอัปเดตแอปได้โดยใช้การแจ้งเตือนในตัว

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

ขั้นตอนถัดไป

ดูข้อมูลเพิ่มเติม

หากมีคำถาม

รายงานปัญหา