เอกสารนี้อธิบายวิธีเผยแพร่บิลด์ 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 หากไม่มีการตรวจสอบสิทธิ์อื่นๆ
ขั้นตอนที่ 3 ตั้งค่า Fastfile และเผยแพร่แอป
- ในเลน
./fastlane/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"
test_devices
test_devices_file
ประเภทการเผยแพร่ต่อไปนี้เป็นส่วนหนึ่งของฟีเจอร์เวอร์ชันเบต้าของผู้ทดสอบอัตโนมัติ
อุปกรณ์ทดสอบที่คุณต้องการเผยแพร่บิลด์ (โปรดดู การทดสอบอัตโนมัติ)
คุณระบุอุปกรณ์ทดสอบเป็นรายการทดสอบที่คั่นด้วยเครื่องหมายอัฒภาคได้ อุปกรณ์:
test_devices: "model=shiba,version=34,locale=en,orientation=portrait;model=b0q,version=33,locale=en,orientation=portrait"
หรือคุณจะระบุเส้นทางไปยังไฟล์ข้อความธรรมดาที่มี รายการอุปกรณ์ทดสอบที่คั่นด้วยเครื่องหมายอัฒภาค
test_devices_file: "/path/to/test-devices.txt"
test_username
ชื่อผู้ใช้สำหรับการเข้าสู่ระบบอัตโนมัติที่จะใช้ระหว่างการทดสอบอัตโนมัติ
test_password
test_password_file
รหัสผ่านสำหรับการเข้าสู่ระบบอัตโนมัติที่จะใช้ระหว่างการทดสอบอัตโนมัติ
หรือระบุเส้นทางไปยังไฟล์ข้อความธรรมดาที่มีรหัสผ่านก็ได้ ดังนี้
test_password_file: "/path/to/test-password.txt"
test_username_resource
ชื่อทรัพยากรของช่องชื่อผู้ใช้สำหรับการเข้าสู่ระบบอัตโนมัติที่จะใช้ระหว่างการทดสอบอัตโนมัติ
test_password_resource
ชื่อทรัพยากรของช่องรหัสผ่านสำหรับการเข้าสู่ระบบอัตโนมัติที่จะใช้ระหว่างการทดสอบอัตโนมัติ
test_non_blocking
เรียกใช้การทดสอบอัตโนมัติแบบไม่พร้อมกัน ไปที่คอนโซล Firebase เพื่อดูผลการทดสอบอัตโนมัติ
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) ลิงก์จะหมดอายุหลังจากผ่านไป 1 ชั่วโมง
หลังจากที่คุณเผยแพร่บิลด์แล้ว บิลด์ดังกล่าวจะพร้อมใช้งานใน แดชบอร์ดของ App Distribution ของคอนโซล 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
: หมายเลขโปรเจ็กต์ Firebasegroup_alias
(ไม่บังคับ): หากระบุไว้ ระบบจะเพิ่มผู้ทดสอบไปยัง (หรือนำออกจาก) กลุ่มที่ระบุservice_credentials_file
: เส้นทางไปยังไฟล์ข้อมูลเข้าสู่ระบบบริการของ Googlefirebase_cli_token
: โทเค็นการตรวจสอบสิทธิ์สำหรับ Firebase CLI
service_credentials_file
และ firebase_cli_token
เหมือนกัน
อาร์กิวเมนต์ที่ใช้โดยการอัปโหลด
ขั้นตอนที่ 5 (ไม่บังคับ) รับข้อมูลเกี่ยวกับแอปรุ่นล่าสุด
คุณใช้การดำเนินการ firebase_app_distribution_get_latest_release
ได้
เพื่อดึงข้อมูลเกี่ยวกับรุ่นล่าสุดของแอปใน App Distribution
รวมถึงข้อมูลเวอร์ชันของแอป บันทึกประจำรุ่น และเวลาที่สร้าง Use Case
รวมการเพิ่มเวอร์ชันโดยอัตโนมัติและใช้รุ่นต่อไป
จากรุ่นก่อนหน้า
ค่าที่ได้ของการดำเนินการคือแฮชที่แสดงถึงรุ่นล่าสุด
คุณใช้แฮชนี้ได้โดยใช้ 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