คุณสามารถแจกจ่ายบิวด์ให้กับผู้ทดสอบได้โดยใช้ fastlane ซึ่งเป็นแพลตฟอร์มโอเพ่นซอร์สที่สร้างและปล่อยแอพ iOS และ Android โดยอัตโนมัติ ทำตามคำแนะนำง่ายๆ ที่กำหนดไว้ใน Fastfile
หลังจากที่คุณตั้งค่า fastlane และ Fastfile
ของคุณแล้ว คุณสามารถรวม App Distribution เข้ากับการกำหนดค่า fastlane ของคุณได้
ขั้นตอนที่ 1 ตั้งค่าช่องทางด่วน
หากต้องการเพิ่ม 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
Fastfile ให้เพิ่มบล็อกfirebase_app_distribution
ใช้พารามิเตอร์ต่อไปนี้เพื่อกำหนดค่าการกระจาย:พารามิเตอร์ firebase_app_distribution app
จำเป็นเฉพาะในกรณีที่แอปของคุณไม่มีไฟล์กำหนดค่า Firebase (
GoogleService-Info.plist
) : รหัสแอป Firebase ของแอปของคุณ คุณสามารถค้นหารหัสแอปได้ในคอนโซล Firebase ใน หน้าการตั้งค่าทั่วไปapp: "1:1234567890:ios:0a1b2c3d4e5f67890"
googleservice_info_plist_path
เส้นทางไปยังไฟล์
GoogleService-Info.plist
ซึ่งสัมพันธ์กับเส้นทางผลิตภัณฑ์ที่เก็บถาวร ตั้งค่าเป็นGoogleService-Info.plist
ตามค่าเริ่มต้นไฟล์นี้ใช้เพื่อรับรหัสแอป Firebase ของแอปของคุณ หากไม่ได้ระบุพารามิเตอร์
app
firebase_cli_token
โทเค็นการรีเฟรชที่จะพิมพ์เมื่อคุณตรวจสอบสภาพแวดล้อม 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. release = 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>
ค่าที่ส่งคืนของการดำเนินการคือแฮชที่แสดงถึงรุ่นที่อัปโหลด แฮชนี้ยังสามารถใช้ได้โดยใช้ lane_context[SharedValues::FIREBASE_APP_DISTRO_RELEASE]
สำหรับข้อมูลเพิ่มเติมเกี่ยวกับฟิลด์ที่มีอยู่ในแฮชนี้ โปรดดู เอกสารประกอบ REST API
ปลั๊กอิน fastlane จะแสดงลิงก์ต่อไปนี้หลังจากการอัปโหลดที่เผยแพร่ ลิงก์เหล่านี้ช่วยคุณจัดการไบนารีและรับรองว่าผู้ทดสอบและนักพัฒนารายอื่นมีรุ่นที่ถูกต้อง:
- ลิงก์ไปยังคอนโซล Firebase ที่แสดงรุ่นเดียว คุณสามารถแชร์ลิงก์นี้กับนักพัฒนาคนอื่นๆ ในองค์กรของคุณได้
- ลิงก์ไปยังรุ่นในประสบการณ์ของผู้ทดสอบ (เว็บคลิป iOS) ที่ให้ผู้ทดสอบดูบันทึกประจำรุ่นและติดตั้งแอปลงในอุปกรณ์ของตน ผู้ทดสอบจำเป็นต้องเข้าถึงรุ่นเพื่อใช้ลิงก์
- ลิงก์ที่ลงนามซึ่งดาวน์โหลดและติดตั้งไบนารีของแอปโดยตรง (ไฟล์ IPA) ลิงก์จะหมดอายุหลังจากหนึ่งชั่วโมง
หลังจากที่คุณเผยแพร่บิลด์แล้ว จะพร้อมใช้งานในแดชบอร์ด App Distribution ของคอนโซล Firebase เป็นเวลา 150 วัน เมื่อบิลด์มีอายุ 30 วันนับจากวันหมดอายุ ข้อความแจ้งการหมดอายุจะปรากฏในคอนโซลและในรายการบิลด์ของผู้ทดสอบบนอุปกรณ์ทดสอบ
ผู้ทดสอบที่ไม่ได้รับเชิญให้ทดสอบแอปก่อนหน้านี้จะได้รับคำเชิญทางอีเมลเพื่อเริ่มต้น ผู้ทดสอบที่มีอยู่จะได้รับการแจ้งเตือนทางอีเมลว่ามีบิลด์ใหม่พร้อมที่จะทดสอบ หากต้องการเรียนรู้วิธีติดตั้งแอปทดสอบ โปรดดู ที่ตั้งค่าเป็นผู้ทดสอบ คุณสามารถตรวจสอบสถานะของผู้ทดสอบแต่ละคนเพื่อดูว่าพวกเขายอมรับคำเชิญหรือไม่ และดาวน์โหลดแอปในคอนโซล Firebase หรือไม่
(ไม่บังคับ) หากต้องการเพิ่มหมายเลขบิวด์ของคุณโดยอัตโนมัติทุกครั้งที่คุณสร้างรีลีสใหม่ใน App Distribution คุณสามารถใช้การดำเนินการ firebase_app_distribution_get_latest_release
และ การดำเนินการ increment_build_number
รหัสต่อไปนี้แสดงตัวอย่างวิธีเพิ่มหมายเลขบิลด์ของคุณโดยอัตโนมัติ:
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 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 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 ( app: "1:1234567890:ios:0a1b2c3d4e5f67890" |
googleservice_info_plist_path | เส้นทางไปยังไฟล์ ไฟล์นี้ใช้เพื่อรับรหัสแอป Firebase ของแอปของคุณ หากไม่ได้ระบุพารามิเตอร์ |
firebase_cli_token | โทเค็นการรีเฟรชที่จะพิมพ์เมื่อคุณตรวจสอบสภาพแวดล้อม CI ของคุณด้วย Firebase CLI (อ่าน ใช้ CLI กับระบบ CI สำหรับข้อมูลเพิ่มเติม) |
service_credentials_file | เส้นทางไปยังไฟล์ json ของบัญชีบริการ Google ดูด้านบนสำหรับวิธีการ ตรวจสอบสิทธิ์โดยใช้ข้อมูลรับรองบัญชีบริการ |
debug | ธงบูลีน คุณสามารถตั้งค่านี้เป็น |
ขั้นตอนถัดไป
หากต้องการลงทะเบียนอุปกรณ์เพิ่มเติมด้วยตนเองหรือโดยทางโปรแกรม โปรดดู ที่ลงทะเบียนอุปกรณ์ iOS เพิ่มเติม
เรียนรู้แนวทางปฏิบัติที่ดีที่สุดใน การเผยแพร่แอพของ Apple ให้กับผู้ทดสอบ QA โดยใช้ CI/CD และ fastlane