เผยแพร่แอป Android ให้ผู้ทดสอบโดยใช้ Firebase CLI

คู่มือนี้อธิบายวิธีเผยแพร่ Android App Bundle (AAB) ให้แก่ผู้ทดสอบโดยใช้ Firebase CLI เครื่องมือ CLI ให้คุณระบุผู้ทดสอบและบันทึกประจำรุ่นสำหรับบิลด์ จากนั้นจึงเผยแพร่บิลด์ตามนั้น

App Distribution ทำงานร่วมกับบริการแชร์แอปภายในของ Google Play เพื่อประมวลผล AAB ที่คุณอัปโหลดและให้บริการ APK ที่เพิ่มประสิทธิภาพสำหรับการกำหนดค่าอุปกรณ์ของผู้ทดสอบ การเผยแพร่ AAB ช่วยให้คุณทําสิ่งต่อไปนี้ได้

  • เรียกใช้ APK ที่เพิ่มประสิทธิภาพแล้ว (ให้บริการโดย Google Play) ซึ่งปรับให้เหมาะกับอุปกรณ์ของผู้ทดสอบ

  • ระบุและแก้ไขข้อบกพร่องของปัญหาเฉพาะอุปกรณ์

  • ทดลองใช้ฟีเจอร์ App Bundle เช่น การนำส่งฟีเจอร์ Play และ Play Asset Delivery

  • ลดขนาดการดาวน์โหลดสำหรับผู้ทดสอบ

สิทธิ์ที่จำเป็น

หากต้องการอัปโหลด 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 มีบทบาทใดบทบาทหนึ่งต่อไปนี้ ––

ก่อนเริ่มต้น

  1. เพิ่ม Firebase ลงในโปรเจ็กต์ Android หากยังไม่ได้ทำ ที่ส่วนท้ายของเวิร์กโฟลว์นี้ คุณจะเห็นแอป Android ใน Firebase ในโปรเจ็กต์ Firebase

    หากไม่ได้ใช้ผลิตภัณฑ์อื่นๆ ของ Firebase เพียงแค่สร้างโปรเจ็กต์และลงทะเบียนแอป หากคุณตัดสินใจจะใช้ผลิตภัณฑ์เพิ่มเติม โปรดทำตามขั้นตอนทั้งหมดในเพิ่ม Firebase ลงในโปรเจ็กต์ Android

  2. หากต้องการสร้างลิงก์ Firebase ไปยัง Google Play และอัปโหลด AAB โปรดตรวจสอบว่าแอปของคุณเป็นไปตามข้อกำหนดต่อไปนี้

    • มีการลงทะเบียนแอปใน Google Play และแอป Firebase บน Android โดยใช้ชื่อแพ็กเกจเดียวกัน

    • แอปใน Google Play มีการตั้งค่าบนหน้าแดชบอร์ดของแอปและเผยแพร่ไปยังแทร็ก Google Play แทร็กใดแทร็กหนึ่ง (การทดสอบภายใน การทดสอบแบบปิด การทดสอบแบบเปิด หรือเวอร์ชันที่ใช้งานจริง)

    • การตรวจสอบของแอปใน Google Play เสร็จสมบูรณ์และมีการเผยแพร่แอปแล้ว ระบบจะเผยแพร่แอปหากคอลัมน์สถานะแอปแสดงสถานะใดสถานะหนึ่งต่อไปนี้ ได้แก่ การทดสอบภายใน (ไม่ใช่การทดสอบภายในฉบับร่าง) การทดสอบแบบปิด การทดสอบแบบเปิด หรือเวอร์ชันที่ใช้งานจริง

  3. วิธีลิงก์แอป Android ใน Firebase กับบัญชีนักพัฒนาแอป Google Play

    1. ในคอนโซล Firebase ให้ไปที่ การตั้งค่าโปรเจ็กต์ จากนั้นเลือกแท็บการผสานรวม

    2. ในการ์ด Google Play ให้คลิกลิงก์
      หากคุณลิงก์กับ Google Play อยู่แล้ว ให้คลิกจัดการแทน

    3. ทำตามวิธีการบนหน้าจอเพื่อเปิดใช้การผสานรวม App Distribution แล้วเลือกแอป Android ใน Firebase ที่จะลิงก์กับ Google Play

    ดูข้อมูลเพิ่มเติมเกี่ยวกับการลิงก์กับ Google Play

ขั้นตอนที่ 1 สร้างแอปของคุณ

เมื่อพร้อมที่จะเผยแพร่แอปเวอร์ชันก่อนเผยแพร่ให้กับผู้ทดสอบแล้ว ให้สร้าง AAB (ดูวิธีการที่เอกสารประกอบสำหรับ Android Studio)

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

หากต้องการเผยแพร่แอปให้กับผู้ทดสอบ ให้อัปโหลดไฟล์ของแอปโดยใช้ Firebase CLI ดังนี้

  1. ติดตั้งหรืออัปเดต Firebase CLI เป็นเวอร์ชันล่าสุด (เราขอแนะนำให้ดาวน์โหลดไบนารีแบบสแตนด์อโลนสำหรับ CLI สำหรับระบบปฏิบัติการของคุณโดยเฉพาะ) อย่าลืมลงชื่อเข้าใช้และทดสอบว่าคุณสามารถเข้าถึงโปรเจ็กต์ของคุณได้หรือไม่
  2. ในหน้า App Distribution ของคอนโซล Firebase ให้เลือกแอปที่ต้องการเผยแพร่แล้วคลิกเริ่มต้นใช้งาน
  3. เรียกใช้คำสั่ง 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

    ประเภทการเผยแพร่ต่อไปนี้เป็นส่วนหนึ่งของฟีเจอร์เวอร์ชันเบต้าของผู้ทดสอบอัตโนมัติ

    อุปกรณ์ทดสอบที่คุณต้องการเผยแพร่บิลด์ (ดูการทดสอบอัตโนมัติ)

    คุณจะระบุผู้ทดสอบเป็นรายชื่ออีเมลที่คั่นด้วยคอมมาได้ดังนี้

    --test-devices: "model=shiba,version=34,locale=en,orientation=portrait;model=b0q,version=33,locale=en,orientation=portrait"

    หรือจะระบุเส้นทางไปยังไฟล์ข้อความธรรมดาที่มีรายการอุปกรณ์ทดสอบที่คั่นด้วยเครื่องหมายอัฒภาคก็ได้ ดังนี้

    --test-devices-file: "/path/to/test-devices.txt"
    --test-username

    ชื่อผู้ใช้สำหรับการเข้าสู่ระบบอัตโนมัติที่จะใช้ระหว่างการทดสอบอัตโนมัติ

    --test-password
    --test-password-file

    รหัสผ่านสำหรับการเข้าสู่ระบบอัตโนมัติที่จะใช้ระหว่างการทดสอบอัตโนมัติ

    หรือระบุเส้นทางไปยังไฟล์ข้อความธรรมดาที่มีรหัสผ่านก็ได้ ดังนี้

    --test-password-file: "/path/to/test-password.txt"
    --test-username-resource

    ชื่อทรัพยากรของช่องชื่อผู้ใช้สำหรับการเข้าสู่ระบบอัตโนมัติที่จะใช้ระหว่างการทดสอบอัตโนมัติ

    --test-password-resource

    ชื่อทรัพยากรของช่องรหัสผ่านสำหรับการเข้าสู่ระบบอัตโนมัติที่จะใช้ระหว่างการทดสอบอัตโนมัติ

    --test-non-blocking

    เรียกใช้การทดสอบอัตโนมัติแบบไม่พร้อมกัน ไปที่คอนโซล Firebase เพื่อดูผลการทดสอบอัตโนมัติ

    เช่น

    firebase appdistribution:distribute test.aab  \
        --app 1:1234567890:android:0a1b2c3d4e5f67890  \
        --release-notes "Bug fixes and improvements" --testers-file testers.txt
    

    Firebase 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.com
    
    firebase 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-team
    
    firebase appdistribution:testers:add --group-alias=qa-team anothertester@email.com moretesters@email.com
    
    firebase appdistribution:testers:remove --group-alias=qa-team anothertester@email.com moretesters@email.com
    
    firebase appdistribution:group:delete qa-team
    

เมื่อเผยแพร่บิลด์แล้ว บิลด์จะพร้อมใช้งานในหน้าแดชบอร์ดของ App Distribution ของคอนโซล Firebase เป็นเวลา 150 วัน (5 เดือน) เมื่อบิลด์ใกล้หมดอายุ 30 วัน การแจ้งเตือนการหมดอายุจะปรากฏขึ้นทั้งในคอนโซลและรายชื่อบิลด์ของผู้ทดสอบในอุปกรณ์ทดสอบ

ผู้ทดสอบที่ไม่ได้รับเชิญให้ทดสอบแอปจะได้รับคำเชิญทางอีเมลให้เริ่มต้นใช้งาน และผู้ทดสอบที่มีอยู่จะได้รับการแจ้งเตือนทางอีเมลว่าเวอร์ชันใหม่พร้อมทดสอบแล้ว (อ่านคู่มือการตั้งค่าผู้ทดสอบเพื่อดูวิธีติดตั้งแอปทดสอบ) คุณสามารถตรวจสอบสถานะของผู้ทดสอบแต่ละรายได้ว่าพวกเขายอมรับคำเชิญหรือไม่และดาวน์โหลดแอปในคอนโซล Firebase หรือไม่

ผู้ทดสอบมีเวลา 30 วันในการยอมรับคำเชิญให้ทดสอบแอปก่อนหมดอายุ เมื่อคำเชิญหมดอายุในอีก 5 วัน การแจ้งเตือนการหมดอายุจะปรากฏในคอนโซล Firebase ถัดจากผู้ทดสอบในรุ่น คุณจะต่ออายุคำเชิญได้โดยส่งอีกครั้งโดยใช้เมนูแบบเลื่อนลงในแถวผู้ทดสอบ

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