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


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

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

  1. เพิ่ม Firebase ลงในโปรเจ็กต์ Android หากยังไม่ได้เพิ่ม

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

  2. เปิดหน้า App Distribution ของคอนโซล Firebase เลือกโปรเจ็กต์ Firebase เมื่อได้รับข้อความแจ้ง เลือกแอปโดยใช้ฟีเจอร์สลับแอป แล้วคลิกเริ่มต้นใช้งาน

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

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

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

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

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

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