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

1. ภาพรวม

c7a9160ef7b184c7.png22e0b52f771c060d.png

ยินดีต้อนรับสู่การผสานรวม SDK การกระจายแอป Firebase ใน Codelab ของแอป 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
  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. หลังจากดาวน์โหลดไฟล์แล้ว คุณสามารถ ข้าม ขั้นตอนถัดไปที่แสดงในคอนโซลได้ (ขั้นตอนเหล่านี้ได้ดำเนินการให้คุณแล้วในโปรเจ็กต์ build-android-start)

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

  1. ในเมนูด้านซ้าย (แท็บโครงการ) ตรวจสอบให้แน่ใจว่าคุณอยู่ในมุมมอง "Android" และค้นหาแท็บ "สคริปต์ Gradle" และเปิดไฟล์ Gradle ของโมดูล (ระดับแอป) (โดยปกติคือ app/build.gradle.kts )
  2. เปลี่ยนคุณสมบัติ applicationId ให้ตรงกับรหัสแอปพลิเคชันของแอป Firebase นี่ควรเป็น "com.google.firebase.appdistributioncodelab"

ซิงค์โครงการของคุณกับไฟล์ Gradle

เพื่อให้แน่ใจว่าแอปของคุณมีการอ้างอิงทั้งหมด ให้ซิงค์โปรเจ็กต์ของคุณกับไฟล์ Gradle โดยเลือก ไฟล์ > ซิงค์โปรเจ็กต์ด้วยไฟล์ Gradle จากแถบเครื่องมือ Android Studio

5. ตั้งค่าการแจ้งเตือนบิลด์ใหม่ในแอปด้วย App Distribution Android SDK

ในขั้นตอนนี้ คุณจะเพิ่ม Firebase App Distribution Android SDK ลงในแอป และแสดงการแจ้งเตือนในแอปให้ผู้ทดสอบทราบเมื่อแอปเวอร์ชันใหม่พร้อมให้ติดตั้ง ในการดำเนินการนี้ ตรวจสอบให้แน่ใจว่าคุณได้เปิดใช้ งาน Firebase App Testers API สำหรับโปรเจ็กต์ "Firebase Codelab" ของคุณ (ใน Google Cloud Console) คุณต้องลงชื่อเข้าใช้ด้วยบัญชีเดียวกันและเลือกโครงการที่ถูกต้องจากเมนูแบบเลื่อนลงที่ด้านบน

กำหนดค่าการแจ้งเตือนในแอป

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:

เปิด 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 ด้วยคีย์การแก้ไขข้อบกพร่องหรือคีย์การลงนามแอป

เผยแพร่แอปของคุณให้กับผู้ทดสอบ

หากต้องการเผยแพร่แอปของคุณให้กับผู้ทดสอบ ให้อัปโหลดไฟล์ APK โดยใช้คอนโซล Firebase:

  1. เปิด หน้าการเผยแพร่แอป ของคอนโซล 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

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

เมื่อคุณไปที่แอป 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 ด้วยคีย์การแก้ไขข้อบกพร่องหรือคีย์การลงนามแอป
  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 ของปุ่ม update แทน

ตอนนี้ ลองใช้เมธอด 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
  • การกระจายแอป Firebase การแจ้งเตือน Android SDK ใหม่

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

เรียนรู้เพิ่มเติม

มีคำถาม?

รายงานปัญหา