แจกจ่ายแอป iOS ให้กับผู้ทดสอบโดยใช้ช่องทางด่วน

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

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

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

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

    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 ( GoogleService-Info.plist ) : รหัสแอป Firebase ของแอปของคุณ คุณสามารถค้นหารหัสแอปได้ในคอนโซล Firebase ใน หน้าการตั้งค่าทั่วไป

    app: "1:1234567890:ios:0a1b2c3d4e5f67890"
    googleservice_info_plist_path

    เส้นทางไปยังไฟล์ GoogleService-Info.plist ซึ่งสัมพันธ์กับเส้นทางผลิตภัณฑ์ที่เก็บถาวร ตั้งค่าเป็น GoogleService-Info.plist ตามค่าเริ่มต้น

    ไฟล์นี้ใช้เพื่อรับรหัสแอป Firebase ของแอปของคุณ หากไม่ได้ระบุพารามิเตอร์ app

    firebase_cli_token

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

    service_credentials_file

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

    ipa_path

    แทนที่ apk_path (เลิกใช้แล้ว) เส้นทางที่แน่นอนไปยังไฟล์ IPA ที่คุณต้องการอัปโหลด หากไม่ระบุ 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"
    debug

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

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

ตัวอย่างเช่น:

platform :ios do
    desc "My awesome app"
    lane :distribute do
        build_ios_app(...)
        # build_ios_app is a built-in fastlane action.

        release = firebase_app_distribution(
            app: "1:123456789:ios:abcd1234",
            testers: "tester1@company.com, tester2@company.com",
            release_notes: "Lots of amazing new features to test out!"
        )

    end
end

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

fastlane <lane>

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

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

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

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

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

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

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

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

ขั้นตอนที่ 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 ( GoogleService-Info.plist ) : รหัสแอป Firebase ของแอปของคุณ คุณสามารถค้นหารหัสแอปได้ในคอนโซล Firebase ใน หน้าการตั้งค่าทั่วไป

app: "1:1234567890:ios:0a1b2c3d4e5f67890"
googleservice_info_plist_path

เส้นทางไปยังไฟล์ GoogleService-Info.plist ซึ่งสัมพันธ์กับเส้นทางผลิตภัณฑ์ที่เก็บถาวร ตั้งค่าเป็น GoogleService-Info.plist ตามค่าเริ่มต้น

ไฟล์นี้ใช้เพื่อรับรหัสแอป Firebase ของแอปของคุณ หากไม่ได้ระบุพารามิเตอร์ app

firebase_cli_token

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

service_credentials_file

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

debug

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

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