Catch up on everything announced at Firebase Summit, and learn how Firebase can help you accelerate app development and run your app with confidence. Learn More

แจกจ่ายแอพ 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 ด้วยวิธีใดวิธีหนึ่งต่อไปนี้ก่อน โดยค่าเริ่มต้น ปลั๊กอิน fastlane จะค้นหาข้อมูลประจำตัวจาก Firebase CLI หากไม่มีวิธีการรับรองความถูกต้องอื่นใด

ขั้นตอนที่ 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 เพื่อพิมพ์เอาต์พุตการดีบักแบบละเอียด

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