คุณสามารถแจกจ่ายบิลด์ให้กับผู้ทดสอบได้โดยใช้ fastlane ซึ่งเป็นแพลตฟอร์มโอเพ่นซอร์สที่สร้างและเผยแพร่แอป iOS และ Android โดยอัตโนมัติ เป็นไปตามคำแนะนำง่ายๆ ที่กำหนดไว้ใน Fastfile
หลังจากที่คุณตั้งค่า fastlane และ Fastfile
ของคุณ คุณสามารถรวม App Distribution เข้ากับการกำหนดค่า fastlane ของคุณได้
ขั้นตอนที่ 1. ตั้งค่า fastlane
ในการเพิ่ม App Distribution ไปยังการกำหนดค่า fastlane ของคุณ ให้รันคำสั่งต่อไปนี้จากรูทของโปรเจ็กต์ iOS ของคุณ:
fastlane add_plugin firebase_app_distribution
หากคำสั่งพร้อมท์ให้คุณมีตัวเลือก ให้เลือก
Option 3: RubyGems.org
ขั้นตอนที่ 2 ตรวจสอบสิทธิ์ด้วย Firebase
ก่อนที่คุณจะใช้ปลั๊กอิน fastlane ได้ คุณต้องตรวจสอบสิทธิ์กับโปรเจ็กต์ Firebase ด้วยวิธีใดวิธีหนึ่งต่อไปนี้ก่อน โดยค่าเริ่มต้น ปลั๊กอิน fastlane จะค้นหาข้อมูลประจำตัวจาก Firebase CLI หากไม่มีการใช้วิธีการตรวจสอบสิทธิ์แบบอื่น
การตรวจสอบสิทธิ์ด้วยบัญชีบริการทำให้คุณสามารถใช้ปลั๊กอินกับระบบการรวมอย่างต่อเนื่อง (CI) ได้อย่างยืดหยุ่น มีสองวิธีในการให้ข้อมูลรับรองบัญชีบริการ:
- ส่งไฟล์คีย์บัญชีบริการของคุณไปที่การดำเนินการ
firebase_app_distribution
คุณอาจพบว่าวิธีนี้สะดวกถ้าคุณมีไฟล์รหัสบัญชีบริการในสภาพแวดล้อมการสร้างของคุณ - ตั้งค่าตัวแปรสภาพแวดล้อม
GOOGLE_APPLICATION_CREDENTIALS
ให้ชี้ไปที่ไฟล์คีย์บัญชีบริการของคุณ คุณอาจต้องการวิธีนี้ถ้าคุณมี Application Default Credentials (ADC) ที่กำหนดค่าไว้สำหรับบริการอื่นของ Google (เช่น Google Cloud)
- ใน Google Cloud Console ให้ เลือกโปรเจ็กต์ของคุณและสร้างบัญชีบริการใหม่
- เพิ่มบทบาทผู้ ดูแลระบบการจัดจำหน่ายแอป Firebase
- สร้างคีย์ json ส่วนตัวและย้ายคีย์ไปยังตำแหน่งที่เข้าถึงได้ในสภาพแวดล้อมการสร้างของคุณ อย่าลืมเก็บไฟล์นี้ไว้ในที่ที่ปลอดภัย เนื่องจากจะให้สิทธิ์ผู้ดูแลระบบในการเข้าถึง App Distribution ในโครงการ Firebase ของคุณ
- ข้ามขั้นตอนนี้หากคุณสร้างแอปหลังวันที่ 20 กันยายน 2019: ในคอนโซล Google APIs ให้เปิดใช้ Firebase App Distribution API เมื่อได้รับแจ้ง ให้เลือกโปรเจ็กต์ที่มีชื่อเดียวกับโปรเจ็กต์ Firebase
ระบุหรือค้นหาข้อมูลบัญชีบริการของคุณ:
- หากต้องการส่งคีย์บัญชีบริการของคุณไปยังการดำเนินการ
firebase_app_distribution
ของเลน ให้ตั้งค่าพารามิเตอร์service_credentials_file
ด้วยพาธไปยังไฟล์ JSON คีย์ส่วนตัวของคุณ ในการค้นหาข้อมูลประจำตัวของคุณด้วย ADC ให้ตั้งค่าตัวแปรสภาพแวดล้อม
GOOGLE_APPLICATION_CREDENTIALS
เป็นเส้นทางสำหรับไฟล์ JSON ของคีย์ส่วนตัว ตัวอย่างเช่น:export GOOGLE_APPLICATION_CREDENTIALS=/absolute/path/to/credentials/file.json
สำหรับข้อมูลเพิ่มเติมเกี่ยวกับการตรวจสอบสิทธิ์ด้วย ADC โปรดอ่าน การจัดเตรียมข้อมูลรับรองให้กับแอปพลิเคชันของคุณ
- หากต้องการส่งคีย์บัญชีบริการของคุณไปยังการดำเนินการ
ดู การเข้าสู่ระบบด้วย Firebase CLI สำหรับคำแนะนำเกี่ยวกับวิธีการตรวจสอบสิทธิ์โปรเจ็กต์ของคุณ
ขั้นตอนที่ 3 ตั้งค่า Fastfile และแจกจ่ายแอปของคุณ
- ในเลน .
./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 ( app: "1:1234567890:ios:0a1b2c3d4e5f67890" |
googleservice_info_plist_path | เส้นทางไปยังไฟล์ ไฟล์นี้ใช้เพื่อรับ Firebase App ID ของ |
firebase_cli_token | โทเค็นการรีเฟรชที่พิมพ์เมื่อคุณเรียกใช้การดำเนินการเข้าสู่ระบบของปลั๊กอิน (ดู ตรวจสอบสิทธิ์โดยใช้บัญชี Google ด้านบน) หรือเมื่อคุณตรวจสอบสิทธิ์สภาพแวดล้อม CI ของคุณด้วย Firebase CLI (อ่าน ใช้ CLI กับระบบ CI สำหรับข้อมูลเพิ่มเติม) |
service_credentials_file | เส้นทางไปยังไฟล์ json ของบัญชีบริการ Google ดูวิธี ตรวจสอบสิทธิ์โดยใช้ข้อมูลบัญชีบริการด้าน บน |
debug | ธงบูลีน คุณสามารถตั้งค่านี้ |
ขั้นตอนถัดไป
- หากต้องการลงทะเบียนอุปกรณ์เพิ่มเติมด้วยตนเองหรือโดยทางโปรแกรม โปรดดูที่ ลงทะเบียนอุปกรณ์ iOS เพิ่มเติม