แจ้งเตือนผู้ทดสอบเกี่ยวกับการเปิดตัวแอปใหม่ของคุณด้วย 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 เวอร์ชัน 3.4+
  • โค้ดตัวอย่าง.
  • อุปกรณ์ทดสอบที่ใช้ Android 2.3+ และบริการ 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)

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

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

ซิงค์โปรเจ็กต์ของคุณกับไฟล์ Gradle

เพื่อให้แน่ใจว่าแอปของคุณมีการอ้างอิงทั้งหมด ให้ซิงค์โปรเจ็กต์ของคุณกับไฟล์ Gradle โดยเลือก ไฟล์ > ซิงค์โปรเจ็กต์ด้วย Gradle Files จากแถบเครื่องมือ 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. เปิด หน้าการแจกจ่ายแอป ของคอนโซล 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

ทดสอบบิลด์ Alerts

  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 ของปุ่มอัปเดต

ตอนนี้ เรามาใช้วิธี 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

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

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

มีคำถาม?

รายงานปัญหา