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

1. ภาพรวม

c7a9160ef7b184c7.png22e0b52f771c060d.png

ยินดีต้อนรับสู่การผสานรวม Firebase App Distribution SDK ใน 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 หรือใหม่กว่า หรือ Emulator พร้อมบริการ 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)

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

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

  • การกำหนดค่าการแจ้งเตือนพื้นฐาน ซึ่งมาพร้อมกับกล่องโต้ตอบที่สร้างไว้ล่วงหน้าเพื่อแสดงต่อผู้ทดสอบ
  • การกำหนดค่าการแจ้งเตือนขั้นสูง ซึ่งช่วยให้คุณปรับแต่งส่วนต่อประสานผู้ใช้ (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. เปิด หน้า 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

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

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

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 App Distribution ใหม่ การแจ้งเตือน Android SDK

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

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

มีคำถาม?

รายงานปัญหา