เอกสารนี้อธิบายวิธีแจกจ่าย APK บิลด์ให้กับผู้ทดสอบโดยใช้ fastlane ซึ่งเป็นแพลตฟอร์มโอเพ่นซอร์สที่สร้างและปล่อยแอป iOS และ Android โดยอัตโนมัติ เอกสารนี้ปฏิบัติตามคำแนะนำที่กำหนดไว้ใน Fastfile
หลังจากที่คุณตั้งค่า fastlane และ Fastfile
ของคุณแล้ว คุณสามารถรวม App Distribution เข้ากับการกำหนดค่า fastlane ของคุณได้
ก่อนที่คุณจะเริ่ม
หากคุณยังไม่ได้ เพิ่ม Firebase ในโครงการ Android ของคุณ
หากคุณไม่ได้ใช้ผลิตภัณฑ์ Firebase อื่นๆ คุณเพียงแค่ต้องสร้างโปรเจ็กต์และลงทะเบียนแอปของคุณเท่านั้น อย่างไรก็ตาม หากคุณตัดสินใจที่จะใช้ผลิตภัณฑ์เพิ่มเติมในอนาคต โปรดแน่ใจว่าได้ทำตามขั้นตอนทั้งหมดในหน้าที่ลิงก์ด้านบนแล้ว
ขั้นตอนที่ 1 ตั้งค่าช่องทางด่วน
หากต้องการเพิ่ม App Distribution ให้กับการกำหนดค่า fastlane ให้รันคำสั่งต่อไปนี้จากรากของโปรเจ็กต์ Android ของคุณ:
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 ของแอปของคุณ คุณสามารถค้นหารหัสแอปได้ในคอนโซล 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) ลิงก์จะหมดอายุหลังจากหนึ่งชั่วโมง
หลังจากที่คุณเผยแพร่บิลด์แล้ว จะพร้อมใช้งานในแดชบอร์ด App Distribution ของคอนโซล Firebase เป็นเวลา 150 วัน เมื่อบิลด์มีอายุ 30 วันนับจากวันหมดอายุ ข้อความแจ้งการหมดอายุจะปรากฏในคอนโซลและในรายการบิลด์ของผู้ทดสอบบนอุปกรณ์ทดสอบ
ผู้ทดสอบที่ไม่ได้รับเชิญให้ทดสอบแอปก่อนหน้านี้จะได้รับคำเชิญทางอีเมลเพื่อเริ่มต้น ผู้ทดสอบที่มีอยู่จะได้รับการแจ้งเตือนทางอีเมลว่ามีบิลด์ใหม่พร้อมที่จะทดสอบ หากต้องการเรียนรู้วิธีติดตั้งแอปทดสอบ โปรดดู คู่มือการตั้งค่าผู้ทดสอบ คุณสามารถตรวจสอบสถานะของผู้ทดสอบแต่ละคนเพื่อดูว่าพวกเขายอมรับคำเชิญหรือไม่ และดาวน์โหลดแอปในคอนโซล Firebase หรือไม่
(ไม่บังคับ) หากต้องการเพิ่มหมายเลขบิวด์ของคุณโดยอัตโนมัติทุกครั้งที่คุณสร้างรีลีสใหม่ใน App Distribution คุณสามารถใช้ การดำเนินการ 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 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 ของแอปของคุณ คุณสามารถค้นหารหัสแอปได้ในคอนโซล Firebase ใน หน้าการตั้งค่าทั่วไป app: "1:1234567890:android:0a1b2c3d4e5f67890" |
firebase_cli_token | โทเค็นการรีเฟรชที่จะพิมพ์เมื่อคุณตรวจสอบสภาพแวดล้อม CI ของคุณด้วย Firebase CLI (อ่าน ใช้ CLI กับระบบ CI สำหรับข้อมูลเพิ่มเติม) |
service_credentials_file | เส้นทางไปยังไฟล์ json ของบัญชีบริการ Google ดูด้านบนสำหรับวิธีการ ตรวจสอบสิทธิ์โดยใช้ข้อมูลรับรองบัญชีบริการ |
debug | ธงบูลีน คุณสามารถตั้งค่านี้เป็น |
ขั้นตอนถัดไป
ใช้ ความคิดเห็นในแอป เพื่อให้ผู้ทดสอบส่งความคิดเห็นเกี่ยวกับแอปของคุณได้ง่าย (รวมถึงภาพหน้าจอ)
เรียนรู้วิธีแสดง การแจ้งเตือนในแอป แก่ผู้ทดสอบเมื่อแอปเวอร์ชันใหม่พร้อมให้ติดตั้ง
เรียนรู้แนวทางปฏิบัติที่ดีที่สุดใน การเผยแพร่แอป Android ให้กับผู้ทดสอบ QA โดยใช้ CI/CD