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

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

ก่อนจะเริ่ม

หากคุณยังไม่ได้ เพิ่ม Firebase กับโครงการ Android ของคุณ

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

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

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

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

    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 App ID คุณสามารถค้นหา App ID ใน Firebase คอนโซลบน หน้าการตั้งค่าทั่วไป

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

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

    ธงบูลีน คุณสามารถตั้งค่านี้เป็น true ที่จะพิมพ์ verbose แก้ปัญหาส่งออก

platform :android do
    desc "My awesome app"
    lane :distribute do
        build_android_app(...)
        # build_android_app is a built-in fastlane action.
        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!"
        )
    end
end

ที่จะทำให้การสร้างที่มีให้ทดสอบเรียกใช้ช่องทางของคุณ:

fastlane <lane>

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

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

(บังคับ) ในการเพิ่มจำนวนการสร้างของคุณโดยอัตโนมัติทุกครั้งที่คุณสร้างรุ่นใหม่ในการจัดจำหน่ายแอปคุณสามารถใช้ 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 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 : Auth โทเค็นสำหรับ Firebase CLI

service_credentials_file และ firebase_cli_token ข้อโต้แย้งเดียวกับที่ใช้โดยการกระทำอัปโหลด

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

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

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

พารามิเตอร์

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

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

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

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

service_credentials_file

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

debug

ธงบูลีน คุณสามารถตั้งค่านี้เป็น true ที่จะพิมพ์ verbose แก้ปัญหาส่งออก