เผยแพร่แอป Android ให้กับผู้ทดสอบโดยใช้ช่องทางด่วน

คู่มือนี้จะอธิบายวิธีแจกจ่ายบิลด์ AAB ให้กับผู้ทดสอบโดยใช้ fastlane ซึ่งเป็นแพลตฟอร์มโอเพ่นซอร์สที่สร้างและปล่อยแอพ iOS และ Android โดยอัตโนมัติ ทำตามคำแนะนำง่ายๆ ที่กำหนดไว้ใน Fastfile หลังจากที่คุณตั้งค่า fastlane และ Fastfile ของคุณแล้ว คุณสามารถรวม App Distribution เข้ากับการกำหนดค่า fastlane ของคุณได้

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

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

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

  • ทดสอบฟีเจอร์ App Bundle เช่น Play Feature Delivery และ 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 ของคุณ เมื่อสิ้นสุดขั้นตอนการทำงานนี้ คุณจะมีแอป Firebase Android ในโปรเจ็กต์ Firebase

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

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

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

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

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

  3. เชื่อมโยงแอป Firebase Android ของคุณกับบัญชีนักพัฒนาซอฟต์แวร์ Google Play ของคุณ:

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

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

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

    เรียนรู้เพิ่มเติมเกี่ยวกับ การเชื่อมโยงไปยัง Google Play

ขั้นตอนที่ 1 ตั้งค่าช่องทางด่วน

  1. ติดตั้งและตั้งค่าช่องทางด่วน

  2. หากต้องการเพิ่ม App Distribution ให้กับการกำหนดค่า fastlane ให้รันคำสั่งต่อไปนี้จากรากของโปรเจ็กต์ Android ของคุณ:

    fastlane add_plugin firebase_app_distribution

    หากคำสั่งแจ้งให้คุณทราบด้วยตัวเลือก ให้เลือก Option 3: RubyGems.org

ขั้นตอนที่ 2 ตรวจสอบสิทธิ์กับ Firebase

ก่อนที่คุณจะสามารถใช้ปลั๊กอิน fastlane คุณต้องตรวจสอบสิทธิ์กับโปรเจ็กต์ Firebase ของคุณก่อนด้วยวิธีใดวิธีหนึ่งต่อไปนี้ ตามค่าเริ่มต้น ปลั๊กอิน fastlane จะค้นหาข้อมูลรับรองจาก Firebase CLI หากไม่มีการใช้วิธีตรวจสอบสิทธิ์อื่น

ขั้นตอนที่ 3 ตั้งค่า Fastfile และเผยแพร่แอปของคุณ

  1. ในช่องทาง ./fastlane/Fastfile Fastfile ให้เพิ่มบล็อก firebase_app_distribution ใช้พารามิเตอร์ต่อไปนี้เพื่อกำหนดค่าการกระจาย:
    พารามิเตอร์ firebase_app_distribution
    app

    จำเป็น : รหัสแอป Firebase ของแอปของคุณ คุณสามารถค้นหารหัสแอปได้ในคอนโซล Firebase ใน หน้าการตั้งค่าทั่วไป

    app: "1:1234567890:android:0a1b2c3d4e5f67890"
    firebase_cli_token

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

    service_credentials_file

    เส้นทางไปยังไฟล์ json ของบัญชีบริการ Google ดูด้านบนสำหรับวิธีการ ตรวจสอบสิทธิ์โดยใช้ข้อมูลรับรองบัญชีบริการ

    android_artifact_type

    ระบุประเภทไฟล์ Android (APK หรือ AAB)

    android_artifact_path

    แทนที่ apk_path (เลิกใช้แล้ว) เส้นทางที่แน่นอนไปยังไฟล์ APK หรือ AAB ที่คุณต้องการอัปโหลด หากไม่ระบุ fastlane จะกำหนดตำแหน่งของไฟล์จากช่องทางที่สร้างไฟล์

    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"
    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 เพื่อดูผลการทดสอบอัตโนมัติ

    debug

    ธงบูลีน คุณสามารถตั้งค่านี้เป็น true เพื่อพิมพ์เอาต์พุตการดีบักแบบละเอียด

platform :android do
    desc "My awesome app"
    lane :distribute do
        build_android_app(task: "bundle", ...)
        # build_android_app is a built-in fastlane action.
        release = firebase_app_distribution(
            app: "1:123456789:android:abcd1234",
            testers: "tester1@company.com, tester2@company.com",
            release_notes: "Lots of amazing new features to test out!",
            android_artifact_type: "AAB"
        )
    end
end

หากต้องการให้บิลด์พร้อมใช้งานสำหรับผู้ทดสอบ ให้รันเลนของคุณ:

fastlane <lane>

ค่าที่ส่งคืนของการดำเนินการคือแฮชที่แสดงถึงรุ่นที่อัปโหลด แฮชนี้ยังสามารถใช้ได้โดยใช้ lane_context[SharedValues::FIREBASE_APP_DISTRO_RELEASE] สำหรับข้อมูลเพิ่มเติมเกี่ยวกับฟิลด์ที่มีอยู่ในแฮชนี้ โปรดดู เอกสารประกอบ REST API

ปลั๊กอิน fastlane จะแสดงลิงก์ต่อไปนี้หลังจากการอัปโหลดที่เผยแพร่ ลิงก์เหล่านี้ช่วยคุณจัดการไบนารีและรับรองว่าผู้ทดสอบและนักพัฒนารายอื่นมีรุ่นที่ถูกต้อง:

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

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

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

(ไม่บังคับ) หากต้องการเพิ่มหมายเลขบิวด์ของคุณโดยอัตโนมัติทุกครั้งที่คุณสร้างรีลีสใหม่ใน App Distribution คุณสามารถใช้ การดำเนินการ firebase_app_distribution_get_latest_release และตัวอย่างเช่น ปลั๊กอิน increment_version_code fastlane รหัสต่อไปนี้แสดงตัวอย่างวิธีเพิ่มหมายเลขบิลด์ของคุณโดยอัตโนมัติ:

lane :increment_version do
  latest_release = firebase_app_distribution_get_latest_release(
    app: "<your Firebase app ID>"
  )
  increment_version_code({ version_code: latest_release[:buildVersion].to_i + 1 })
end

หากต้องการเรียนรู้เพิ่มเติมเกี่ยวกับการดำเนินการ firebase_app_distribution_get_latest_release โปรดดู รับข้อมูลเกี่ยวกับการเปิดตัวล่าสุดของแอปของคุณ

ขั้นตอนที่ 4 (ไม่บังคับ) การจัดการผู้ทดสอบสำหรับการจัดจำหน่าย

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

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

หากคุณมีผู้ทดสอบจำนวนมาก คุณควรพิจารณาใช้กลุ่ม

ใช้ Fastfile

# Use lanes to add or remove testers from a project.
lane(:add_testers) do
  firebase_app_distribution_add_testers(
    emails: "foo@google.com,bar@google.com"
    # or file: "/path/to/testers.txt"
    group_alias: "qa-team" # (Optional) add testers to this group
  )
end

lane(:remove_testers) do
  firebase_app_distribution_remove_testers(
    emails: "foo@google.com,bar@google.com"
    # or file: "/path/to/testers.txt"
    group_alias: "qa-team" # (Optional) remove testers from this group only
  )
end
# Add or remove testers with the terminal
$ fastlane add_testers
$ fastlane remove_testers

เรียกใช้การกระทำของช่องทางด่วน

fastlane run firebase_app_distribution_create_group display_name:"QA Team" alias:"qa-team"
fastlane run firebase_app_distribution_add_testers group_alias:"qa-team" emails:"foo@google.com,bar@google.com"
fastlane run firebase_app_distribution_remove_testers group_alias:"qa-team" emails:"foo@google.com,bar@google.com"
fastlane run firebase_app_distribution_delete_group alias:"qa-team"

คุณยังสามารถระบุผู้ทดสอบโดยใช้ --file="/path/to/testers.txt แทน --emails ได้

งาน firebase_app_distribution_add_testers และ firebase_app_distribution_remove_testers ยังยอมรับอาร์กิวเมนต์ต่อไปนี้ด้วย:

  • project_name : หมายเลขโปรเจ็กต์ Firebase ของคุณ
  • group_alias (ไม่บังคับ): หากระบุ ผู้ทดสอบจะถูกเพิ่ม (หรือลบออกจาก) กลุ่มที่ระบุ
  • service_credentials_file : เส้นทางไปยังไฟล์ข้อมูลรับรองบริการ Google ของคุณ
  • firebase_cli_token : โทเค็นการตรวจสอบสิทธิ์สำหรับ Firebase CLI

service_credentials_file และ firebase_cli_token เป็นอาร์กิวเมนต์เดียวกันกับที่ใช้โดยการดำเนินการอัปโหลด

ขั้นตอนที่ 5 (ไม่บังคับ) รับข้อมูลเกี่ยวกับแอปรุ่นล่าสุดของคุณ

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

ค่าที่ส่งคืนของการดำเนินการคือแฮชที่แสดงถึงรุ่นล่าสุด แฮชนี้ยังสามารถใช้ได้โดยใช้ lane_context[SharedValues::FIREBASE_APP_DISTRO_LATEST_RELEASE] สำหรับข้อมูลเพิ่มเติมเกี่ยวกับฟิลด์ที่มีอยู่ในแฮชนี้ โปรดดู เอกสารประกอบ REST API

พารามิเตอร์

พารามิเตอร์ firebase_app_distribution_get_latest_release
app

จำเป็น : รหัสแอป Firebase ของแอปของคุณ คุณสามารถค้นหารหัสแอปได้ในคอนโซล Firebase บน หน้าการตั้งค่าทั่วไป

app: "1:1234567890:android:0a1b2c3d4e5f67890"
firebase_cli_token

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

service_credentials_file

เส้นทางไปยังไฟล์ json ของบัญชีบริการ Google ดูด้านบนสำหรับวิธีการ ตรวจสอบสิทธิ์โดยใช้ข้อมูลรับรองบัญชีบริการ

debug

ธงบูลีน คุณสามารถตั้งค่านี้เป็น true เพื่อพิมพ์เอาต์พุตการดีบักแบบละเอียด

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