คู่มือนี้อธิบายวิธีเผยแพร่ Android App Bundle (AAB) ให้แก่ผู้ทดสอบโดยใช้ Firebase CLI เครื่องมือ CLI ช่วยให้คุณระบุผู้ทดสอบและบันทึกประจำรุ่นสำหรับบิลด์ แล้วจึงเผยแพร่บิลด์ตามนั้น
App Distribution ผสานรวมกับบริการแชร์แอปภายในของ Google Play เพื่อประมวลผล AAB ที่คุณอัปโหลดและแสดง APK ที่เพิ่มประสิทธิภาพสำหรับการกำหนดค่าอุปกรณ์ของผู้ทดสอบ การเผยแพร่ AAB ช่วยให้คุณทำสิ่งต่อไปนี้ได้
เรียกใช้ APK ที่เพิ่มประสิทธิภาพ (แสดงโดย Google Play) ซึ่งเพิ่มประสิทธิภาพสำหรับอุปกรณ์ของผู้ทดสอบ
ค้นหาและแก้ไขข้อบกพร่องของปัญหาเฉพาะอุปกรณ์
ทดสอบฟีเจอร์ App Bundle เช่น การนำส่งฟีเจอร์ Play และการนำส่งเนื้อหา Play
ลดขนาดการดาวน์โหลดสำหรับผู้ทดสอบ
สิทธิ์ที่จำเป็น
หากต้องการอัปโหลด AAB ไปยัง App Distribution คุณต้องลิงก์แอป Firebase กับแอปใน Google Play คุณต้องมีสิทธิ์เข้าถึงในระดับที่จำเป็นจึงจะดำเนินการเหล่านี้ได้
หากไม่มีสิทธิ์เข้าถึง Firebase ที่จำเป็น คุณสามารถขอให้เจ้าของโปรเจ็กต์ Firebase มอบหมายบทบาทที่เกี่ยวข้องให้คุณโดยใช้การตั้งค่า IAM ของคอนโซล Firebase หากมีคำถามเกี่ยวกับการเข้าถึงโปรเจ็กต์ Firebase รวมถึงการค้นหาหรือการมอบหมายเจ้าของ โปรดอ่านคำถามที่พบบ่อยเกี่ยวกับ"สิทธิ์และสิทธิ์เข้าถึงโปรเจ็กต์ Firebase"
ตารางต่อไปนี้ใช้กับการลิงก์แอป Firebase กับแอปใน Google Play รวมถึงการอัปโหลด AAB
| การดำเนินการในคอนโซล Firebase | สิทธิ์ IAM ที่จำเป็น | บทบาท IAM ที่มีสิทธิ์ที่จำเป็นโดยค่าเริ่มต้น | บทบาทเพิ่มเติมที่จำเป็น |
|---|---|---|---|
| ลิงก์แอป Firebase กับแอปใน Google Play | firebase.playLinks.update
|
บทบาทใดบทบาทหนึ่งต่อไปนี้ | สิทธิ์เข้าถึงบัญชีนักพัฒนาแอป Google Play ในฐานะผู้ดูแลระบบ |
| อัปโหลด AAB ไปยัง App Distribution | firebaseappdistro.releases.update
|
บทบาทใดบทบาทหนึ่งต่อไปนี้ | –– |
ก่อนเริ่มต้น
เพิ่ม Firebase ลงในโปรเจ็กต์ Android หากยังไม่ได้เพิ่ม เมื่อสิ้นสุดเวิร์กโฟลว์นี้ คุณจะมีแอป Android ของ Firebase ในโปรเจ็กต์ Firebase
หากไม่ได้ใช้ผลิตภัณฑ์อื่นๆ ของ Firebase คุณเพียงแค่ต้องสร้างโปรเจ็กต์และลงทะเบียนแอป หากตัดสินใจใช้ผลิตภัณฑ์เพิ่มเติม โปรดทำตามขั้นตอนทั้งหมดในหัวข้อเพิ่ม Firebase ลงในโปรเจ็กต์ Android
เปิดหน้า App Distribution ของคอนโซล Firebase เลือกโปรเจ็กต์ Firebase เมื่อได้รับข้อความแจ้ง เลือกแอปโดยใช้ฟีเจอร์สลับแอป แล้วคลิกเริ่มต้นใช้งาน
หากต้องการลิงก์ Firebase กับ Google Play และอัปโหลด AAB โปรดตรวจสอบว่าแอปเป็นไปตามข้อกำหนดต่อไปนี้
มีการลงทะเบียนแอปใน Google Play และแอป Android ของ Firebase โดยใช้ชื่อแพ็กเกจเดียวกัน
แอปใน Google Play มีการตั้งค่าในหน้าแดชบอร์ดของแอปและเผยแพร่ไปยังแทร็ก Google Play แทร็กใดแทร็กหนึ่ง (การทดสอบภายใน การทดสอบแบบปิด การทดสอบแบบเปิด หรือเวอร์ชันที่ใช้งานจริง)
การตรวจสอบของแอปใน Google Play เสร็จสมบูรณ์และมีการเผยแพร่แอปแล้ว ระบบจะเผยแพร่แอปหากคอลัมน์สถานะแอปแสดงสถานะใดสถานะหนึ่งต่อไปนี้ ได้แก่ การทดสอบภายใน (ไม่ใช่การทดสอบภายในฉบับร่าง) การทดสอบแบบปิด การทดสอบแบบเปิด หรือเวอร์ชันที่ใช้งานจริง
ลิงก์แอป Android ใน Firebase กับบัญชีนักพัฒนาแอป Google Play โดยทำดังนี้
ในคอนโซล Firebase ให้ไปที่
การตั้งค่าโปรเจ็กต์ แล้วเลือกแท็บการผสานรวมในการ์ด Google Play ให้คลิกลิงก์
หากคุณลิงก์กับ Google Play อยู่แล้ว ให้คลิกจัดการแทนทำตามวิธีการบนหน้าจอเพื่อเปิดใช้การผสานรวม App Distribution และเลือกแอป Android ของ Firebase ที่จะลิงก์กับ Google Play
ดูข้อมูลเพิ่มเติมเกี่ยวกับการลิงก์กับ Google Play
ขั้นตอนที่ 1 สร้างแอป
เมื่อพร้อมที่จะเผยแพร่แอปเวอร์ชันทดลองให้แก่ผู้ทดสอบแล้ว ให้สร้าง AAB (ดูวิธีการได้ที่เอกสารประกอบของ Android Studio)
ขั้นตอนที่ 2 เผยแพร่แอปให้ผู้ทดสอบ
หากต้องการเผยแพร่แอปให้ผู้ทดสอบ ให้อัปโหลดไฟล์ของแอปโดยใช้ Firebase CLI ดังนี้
- ติดตั้งหรืออัปเดต Firebase CLI เป็นเวอร์ชันล่าสุด (เราขอแนะนำให้ดาวน์โหลดไบนารีแบบสแตนด์อโลนสำหรับ CLI ที่เจาะจงสำหรับระบบปฏิบัติการของคุณ) อย่าลืมลงชื่อเข้าใช้และทดสอบว่าคุณเข้าถึงโปรเจ็กต์ได้
-
เรียกใช้คำสั่ง
appdistribution:distributeเพื่ออัปโหลดแอปและเผยแพร่ให้ผู้ทดสอบ ใช้พารามิเตอร์ต่อไปนี้เพื่อกำหนดค่าการจัดจำหน่ายตัวเลือก appdistribution:distribute --appจำเป็น: รหัสแอป Firebase ของแอป คุณดูรหัสแอปได้ในคอนโซล Firebase ในหน้าการตั้งค่าทั่วไป
--app 1:1234567890:android:0a1b2c3d4e5f67890
--tokenโทเค็นการรีเฟรชที่พิมพ์เมื่อคุณตรวจสอบสิทธิ์สภาพแวดล้อม CI ด้วย Firebase CLI (อ่านข้อมูลเพิ่มเติมได้ที่ใช้ CLI กับระบบ CI )
--token "$FIREBASE_TOKEN"
--release-notes
--release-notes-fileบันทึกประจำรุ่นสำหรับบิลด์นี้
คุณสามารถระบุบันทึกประจำรุ่นได้โดยตรง ดังนี้
--release-notes "Text of release notes"
หรือระบุเส้นทางไปยังไฟล์ข้อความธรรมดา ดังนี้
--release-notes-file "/path/to/release-notes.txt"
--testers
--testers-fileอีเมลของผู้ทดสอบที่คุณต้องการเชิญ
คุณระบุผู้ทดสอบเป็นรายการอีเมลที่คั่นด้วยคอมมาได้ดังนี้
--testers "ali@example.com, bri@example.com, cal@example.com"
หรือจะระบุเส้นทางไปยังไฟล์ข้อความธรรมดาที่มีรายการอีเมลที่คั่นด้วยคอมมาก็ได้ ดังนี้
--testers-file "/path/to/testers.txt"
--groups
--groups-fileกลุ่มผู้ทดสอบที่คุณต้องการเชิญ (ดูจัดการผู้ทดสอบ) กลุ่มจะระบุโดยใช้
ชื่อแทนกลุ่ม ซึ่งคุณสามารถค้นหาได้ในคอนโซล Firebaseคุณสามารถระบุกลุ่มเป็นรายการที่คั่นด้วยคอมมาได้ ดังนี้
--groups "qa-team, trusted-testers"
หรือจะระบุเส้นทางไปยังไฟล์ข้อความธรรมดาที่มีรายการชื่อกลุ่มที่คั่นด้วยคอมมาก็ได้ ดังนี้
--groups-file "/path/to/groups.txt"
--debugแฟล็กที่คุณสามารถใส่เพื่อพิมพ์เอาต์พุตบันทึกแบบละเอียด
--test-devices
--test-devices-fileอุปกรณ์ทดสอบที่คุณต้องการเรียกใช้การทดสอบเอเจนต์ App Testing
คุณระบุอุปกรณ์ทดสอบเป็นรายการข้อมูลจำเพาะของอุปกรณ์ที่คั่นด้วยเครื่องหมายเซมิโคลอนได้ดังนี้
--test-devices: "model=shiba,version=34,locale=en,orientation=portrait"
หรือจะระบุเส้นทางไปยังไฟล์ข้อความธรรมดาที่มีรายการอุปกรณ์ทดสอบที่คั่นด้วยเซมิโคลอนก็ได้ ดังนี้
--test-devices-file: "/path/to/test-devices.txt"
--test-usernameชื่อผู้ใช้สำหรับการเข้าสู่ระบบอัตโนมัติที่จะใช้ระหว่างการทดสอบเอเจนต์ App Testing
--test-password
--test-password-fileรหัสผ่านสำหรับการเข้าสู่ระบบอัตโนมัติที่จะใช้ระหว่างการทดสอบเอเจนต์ App Testing
หรือจะระบุเส้นทางไปยังไฟล์ข้อความธรรมดาที่มีรหัสผ่านก็ได้ โดยทำดังนี้
--test-password-file: "/path/to/test-password.txt"
--test-username-resourceชื่อทรัพยากรสำหรับช่องชื่อผู้ใช้สำหรับการเข้าสู่ระบบอัตโนมัติที่จะใช้ระหว่างการทดสอบเอเจนต์ App Testing
--test-password-resourceชื่อทรัพยากรสำหรับช่องรหัสผ่านสำหรับการเข้าสู่ระบบอัตโนมัติที่จะใช้ระหว่างการทดสอบเอเจนต์ App Testing
--test-non-blockingหากตั้งค่าไว้เมื่อเรียกใช้การทดสอบเอเจนต์ App Testing คำสั่งจะเริ่มการทดสอบแล้วแสดงผลทันทีแทนที่จะรอให้การทดสอบเสร็จสมบูรณ์ หากต้องการดูผลการทดสอบ ให้ไปที่คอนโซล Firebase หากไม่ได้ตั้งค่าแฟล็กนี้ คำสั่งจะบล็อกจนกว่าการทดสอบจะเสร็จสมบูรณ์ และออกด้วยรหัสความล้มเหลวหากการทดสอบใดๆ ล้มเหลว
--results-bucketที่เก็บข้อมูล Google Cloud Storage (GCS) ที่กำหนดเองซึ่งใช้จัดเก็บผลการทดสอบ หากเว้นว่างไว้ ระบบจะใช้ที่เก็บข้อมูลเริ่มต้น โปรเจ็กต์ที่เปิดใช้การเรียกเก็บเงินต้องเป็นเจ้าของที่เก็บข้อมูล และการระบุที่เก็บข้อมูลจะส่งผลให้มีการเรียกเก็บเงินสำหรับพื้นที่เก็บข้อมูลที่ใช้
เช่น
firebase appdistribution:distribute test.aab \ --app 1:1234567890:android:0a1b2c3d4e5f67890 \ --release-notes "Bug fixes and improvements" --testers-file testers.txtFirebase CLI จะแสดงลิงก์ต่อไปนี้หลังจากอัปโหลดรุ่น ลิงก์เหล่านี้จะช่วยคุณจัดการไบนารีและตรวจสอบว่าผู้ทดสอบและนักพัฒนาแอปคนอื่นๆ มีรุ่นที่ถูกต้อง
firebase_console_uri- ลิงก์ไปยังคอนโซล Firebase ที่แสดงรุ่นเดียว คุณแชร์ลิงก์นี้กับนักพัฒนาแอปคนอื่นๆ ในองค์กรได้testing_uri- ลิงก์ไปยังรุ่นในประสบการณ์ของผู้ทดสอบ (แอป Android ในตัว) ซึ่งช่วยให้ผู้ทดสอบดูบันทึกประจำรุ่นและติดตั้งแอปลงในอุปกรณ์ของตนได้ ผู้ทดสอบต้องมีสิทธิ์เข้าถึงรุ่นดังกล่าวจึงจะใช้ลิงก์ได้binary_download_uri- ลิงก์ที่ลงชื่อซึ่งจะดาวน์โหลดและติดตั้งไบนารีของแอปโดยตรง (ไฟล์ APK หรือ AAB) ลิงก์จะหมดอายุหลังจากผ่านไป 1 ชั่วโมง
จัดการผู้ทดสอบและกลุ่ม
นอกจากการเผยแพร่รุ่นแล้ว คุณยังใช้
appdistribution:testers:addและappdistribution:testers:removeเพื่อเชิญผู้ทดสอบใหม่หรือนำผู้ทดสอบที่มีอยู่ออกจากโปรเจ็กต์ Firebase ได้ด้วยเมื่อเพิ่มผู้ทดสอบลงในโปรเจ็กต์ Firebase แล้ว คุณจะเพิ่มผู้ทดสอบลงในแต่ละรุ่นได้ เมื่อนำผู้ทดสอบออกแล้ว ผู้ทดสอบจะเข้าถึงรุ่นต่างๆ ในโปรเจ็กต์ของคุณไม่ได้อีกต่อไป โปรดทราบว่าผู้ทดสอบที่เพิ่งถูกนำออกจะยังคงเข้าถึงรุ่นของคุณได้เป็นระยะเวลาหนึ่ง
เช่น
firebase appdistribution:testers:add anothertester@email.com moretesters@email.comfirebase appdistribution:testers:remove anothertester@email.com moretesters@email.comอีเมลของผู้ทดสอบต้องคั่นด้วยการเว้นวรรค นอกจากนี้ คุณยังระบุผู้ทดสอบโดยใช้
--file /path/to/testers.txtได้ด้วยหากมีผู้ทดสอบจำนวนมาก คุณควรพิจารณาใช้กลุ่ม โดยสามารถใช้
appdistribution:group:createและappdistribution:group:deleteเพื่อสร้างหรือลบกลุ่มในโปรเจ็กต์ Firebaseใช้
--group-aliasเพื่อระบุกลุ่มสำหรับคำสั่งappdistribution:testers:addและappdistribution:testers:removeเช่น
firebase appdistribution:group:create "QA team" qa-teamfirebase appdistribution:testers:add --group-alias=qa-team anothertester@email.com moretesters@email.comfirebase appdistribution:testers:remove --group-alias=qa-team anothertester@email.com moretesters@email.comfirebase appdistribution:group:delete qa-team
เมื่อคุณเผยแพร่บิลด์แล้ว บิลด์จะพร้อมใช้งานในแดชบอร์ด App Distribution ของคอนโซล Firebase เป็นเวลา 150 วัน (5 เดือน) เมื่อบิลด์เหลือเวลาอีก 30 วันก่อนหมดอายุ การแจ้งเตือนการหมดอายุจะปรากฏทั้งในคอนโซลและรายการบิลด์ของผู้ทดสอบในอุปกรณ์ทดสอบ
ผู้ทดสอบที่ยังไม่ได้รับเชิญให้ทดสอบแอปจะได้รับคำเชิญทางอีเมลเพื่อเริ่มต้นใช้งาน และผู้ทดสอบที่มีอยู่จะได้รับการแจ้งเตือนทางอีเมลว่าบิลด์ใหม่พร้อมให้ทดสอบแล้ว (อ่านคู่มือการตั้งค่าผู้ทดสอบเพื่อดูวิธีการติดตั้งแอปทดสอบ) คุณสามารถตรวจสอบสถานะของผู้ทดสอบแต่ละรายได้ว่ายอมรับคำเชิญและดาวน์โหลดแอปหรือไม่ในคอนโซล Firebase
ผู้ทดสอบมีเวลา 30 วันในการตอบรับคำเชิญให้ทดสอบแอปก่อนที่คำเชิญจะหมดอายุ เมื่อคำเชิญเหลือเวลาอีก 5 วันก่อนหมดอายุ การแจ้งเตือนการหมดอายุจะปรากฏในคอนโซล Firebase ข้างผู้ทดสอบในรุ่น คุณสามารถต่ออายุคำเชิญได้โดยส่งคำเชิญอีกครั้งโดยใช้เมนูแบบเลื่อนลงในแถวผู้ทดสอบ
ขั้นตอนถัดไป
ใช้ความคิดเห็นในแอปเพื่อรวบรวมความคิดเห็นจากผู้ทดสอบเกี่ยวกับแอปของคุณ (รวมถึงภาพหน้าจอ)
ดูวิธีแสดงการแจ้งเตือนในแอปแก่ผู้ทดสอบเมื่อมีแอปเวอร์ชันใหม่พร้อมให้ติดตั้ง
ดูแนวทางปฏิบัติแนะนำสำหรับการเผยแพร่แอป Android ให้แก่ผู้ทดสอบ QA โดยใช้ CI/CD