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

เอกสารนี้อธิบายวิธีการเผยแพร่ APK บิลด์ให้กับผู้ทดสอบโดยใช้ fastlane ซึ่งเป็นแพลตฟอร์มโอเพ่นซอร์สที่สร้างและปล่อยแอป iOS และ Android โดยอัตโนมัติ เอกสารนี้ทำตามคำแนะนำที่กำหนดไว้ใน Fastfile หลังจากที่คุณตั้งค่า fastlane และ Fastfile แล้ว คุณสามารถรวม App Distribution กับการกำหนดค่า 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 ด้วยวิธีใดวิธีหนึ่งต่อไปนี้ก่อน ตามค่าเริ่มต้น ปลั๊กอิน 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"
    debug

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

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

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

fastlane <lane>

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

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

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

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

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

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

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

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

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