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