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

1. ภาพรวม

c7a9160ef7b184c7.png 22e0b52f771c060d.png

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

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

4. สร้างโปรเจ็กต์คอนโซล Firebase

เพิ่มโปรเจ็กต์ Firebase ใหม่

  1. เปิดคอนโซล Firebase
  2. เลือกเพิ่มโปรเจ็กต์ แล้วตั้งชื่อโปรเจ็กต์ของคุณว่า "Firebase Codelab"

คุณไม่จำเป็นต้องเปิดใช้ Google Analytics สำหรับโปรเจ็กต์นี้

  1. คลิกสร้างโครงการ

เพิ่มแอปลงใน Firebase

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

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

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

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

อัปเดตรหัสแอปพลิเคชันให้ตรงกับแอป Firebase

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

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

c18cb684f8e82ad6.png

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

เมื่อไปที่แอป App Distribution Lab คุณจะเห็นว่ารุ่นดังกล่าวพร้อมให้ดาวน์โหลดแล้ว

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. ยินดีด้วย

คุณได้สร้าง "การแสดงการแจ้งเตือนในแอป" ลงในแอปโดยใช้ Firebase App Distribution Android SDK

สรุปประเด็นที่ได้พูดถึง

  • Firebase App Distribution
  • การแจ้งเตือนใหม่สำหรับ Android SDK ของ Firebase App Distribution

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

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

หากมีคำถาม

รายงานปัญหา