แจกจ่ายแอพ iOS ให้กับผู้ทดสอบโดยใช้ fastlane

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

ขั้นตอนที่ 1 ตั้งค่า fastlane

  1. ติดตั้งและตั้งค่า fastlane

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

    fastlane add_plugin firebase_app_distribution

    หากคำสั่งแจ้งให้คุณมีตัวเลือก ให้เลือก Option 3: RubyGems.org

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

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

ขั้นตอนที่ 3 ตั้งค่า Fastfile และแจกจ่ายแอปของคุณ

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

    จำเป็นเฉพาะเมื่อแอปของคุณไม่มีไฟล์กำหนดค่า Firebase ( GoogleService-Info.plist ) : Firebase App ID ของแอปของคุณ คุณสามารถค้นหา App ID ได้ในคอนโซล Firebase ใน หน้าการตั้งค่าทั่วไป

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

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

    ไฟล์นี้ใช้เพื่อรับ Firebase App ID ของ app

    firebase_cli_token

    โทเค็นการรีเฟรชที่พิมพ์ออกมาเมื่อคุณเรียกใช้การดำเนินการเข้าสู่ระบบของปลั๊กอิน (ดู ตรวจสอบสิทธิ์โดยใช้บัญชี Google ด้านบน) หรือเมื่อคุณตรวจสอบสิทธิ์สภาพแวดล้อม 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 เพื่อพิมพ์เอาต์พุตการดีบักแบบละเอียด

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

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

        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>

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

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

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

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 an app release.
lane(:add_testers) do
  firebase_app_distribution_add_testers(
    emails: "foo@google.com,bar@google.com"
    # or file: "/path/to/testers.txt"
  )
end

lane(:remove_testers) do
  firebase_app_distribution_remove_testers(
    emails: "foo@google.com,bar@google.com"
    # or file: "/path/to/testers.txt"
  )
end
# Add or remove testers with the terminal
$ fastlane add_testers
$ fastlane remove_testers

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

fastlane run firebase_app_distribution_add_testers emails:"foo@google.com,bar@google.com"

fastlane run firebase_app_distribution_remove_testers emails:"foo@google.com,bar@google.com"

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

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

  • project_name : หมายเลขโปรเจ็กต์ Firebase ของคุณ
  • 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 App ID ของแอปของคุณ คุณสามารถค้นหา App ID ได้ในคอนโซล Firebase ใน หน้าการตั้งค่าทั่วไป

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

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

ไฟล์นี้ใช้เพื่อรับ Firebase App ID ของ app

firebase_cli_token

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

service_credentials_file

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

debug

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