คุณสามารถรวม App Distribution เข้ากับกระบวนการสร้าง Android ของคุณโดยใช้ปลั๊กอิน App Distribution Gradle ปลั๊กอินช่วยให้คุณระบุผู้ทดสอบและบันทึกประจำรุ่นในไฟล์ build.gradle
ของแอป ช่วยให้คุณกำหนดค่าการแจกจ่ายสำหรับประเภทบิลด์และตัวแปรต่างๆ ของแอปได้
คู่มือนี้อธิบายวิธีแจกจ่าย APK ไปยังผู้ทดสอบโดยใช้ปลั๊กอิน App Distribution Gradle
ก่อนจะเริ่ม
หากคุณยังไม่ได้ เพิ่ม Firebase ในโครงการ Android ของคุณ
หากคุณไม่ได้ใช้ผลิตภัณฑ์ Firebase อื่นๆ คุณต้องสร้างโปรเจ็กต์และลงทะเบียนแอปของคุณเท่านั้น อย่างไรก็ตาม หากคุณตัดสินใจใช้ผลิตภัณฑ์เพิ่มเติมในอนาคต อย่าลืมทำตามขั้นตอนทั้งหมดในหน้าที่ลิงก์ด้านบนนี้
ขั้นตอนที่ 1. ตั้งค่าโปรเจ็กต์ Android ของคุณ
ในไฟล์ Gradle ระดับโปรเจ็กต์ของคุณ (โดยปกติคือ
android/build.gradle
) ให้เพิ่มปลั๊กอิน App Distribution เป็นการพึ่งพา buildscript:buildscript { repositories { // Check that you have Google's Maven repository (if not, add it). google() jcenter() } dependencies { // Add the App Distribution Gradle plugin classpath 'com.google.firebase:firebase-appdistribution-gradle:3.0.3' } }
ในไฟล์ Gradle ระดับแอปของคุณ (โดยปกติคือ
android/app/build.gradle
) ให้รวมปลั๊กอิน App Distribution ไว้ด้านล่างปลั๊กอิน Android:apply plugin: 'com.android.application' // ... // Apply the App Distribution Gradle plugin apply plugin: 'com.google.firebase.appdistribution' // ...
หากคุณอยู่เบื้องหลังพร็อกซีหรือไฟร์วอลล์ขององค์กร ให้เพิ่ม คุณสมบัติระบบ Java ต่อไปนี้ที่ช่วยให้ App Distribution สามารถอัปโหลดการแจกจ่ายของคุณไปยัง Firebase:
-Djavax.net.ssl.trustStore=/path/to/truststore -Djavax.net.ssl.trustStorePassword=password
ขั้นตอนที่ 2 ตรวจสอบสิทธิ์ด้วย Firebase
ก่อนที่คุณจะใช้ปลั๊กอิน Gradle ได้ คุณต้องตรวจสอบสิทธิ์กับโปรเจ็กต์ Firebase ด้วยวิธีใดวิธีหนึ่งต่อไปนี้ก่อน ตามค่าเริ่มต้น ปลั๊กอิน Gradle จะค้นหาข้อมูลประจำตัวจาก Firebase CLI หากไม่มีวิธีการตรวจสอบสิทธิ์อื่นใด
การตรวจสอบสิทธิ์ด้วยบัญชีบริการทำให้คุณสามารถใช้ปลั๊กอินกับระบบการรวมอย่างต่อเนื่อง (CI) ได้อย่างยืดหยุ่น มีสองวิธีในการให้ข้อมูลรับรองบัญชีบริการ:
- ส่งไฟล์รหัสบัญชีบริการของคุณไปที่
build.gradle
คุณอาจพบว่าวิธีนี้สะดวกถ้าคุณมีไฟล์รหัสบัญชีบริการในสภาพแวดล้อมการสร้างของคุณ - ตั้งค่าตัวแปรสภาพแวดล้อม
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
ระบุหรือค้นหาข้อมูลบัญชีบริการของคุณ:
- หากต้องการส่ง Gradle คีย์บัญชีบริการของคุณในไฟล์
build.gradle
ให้ตั้งค่าคุณสมบัติserviceCredentialsFile
เป็นไฟล์ JSON คีย์ส่วนตัว ในการค้นหาข้อมูลประจำตัวของคุณด้วย ADC ให้ตั้งค่าตัวแปรสภาพแวดล้อม
GOOGLE_APPLICATION_CREDENTIALS
เป็นเส้นทางสำหรับไฟล์ JSON ของคีย์ส่วนตัว ตัวอย่างเช่น:export GOOGLE_APPLICATION_CREDENTIALS=/absolute/path/to/credentials/file.json
สำหรับข้อมูลเพิ่มเติมเกี่ยวกับการตรวจสอบสิทธิ์ด้วย ADC โปรดอ่าน การจัดเตรียมข้อมูลรับรองให้กับแอปพลิเคชันของคุณ
- หากต้องการส่ง Gradle คีย์บัญชีบริการของคุณในไฟล์
ดู การเข้าสู่ระบบด้วย Firebase CLI สำหรับคำแนะนำเกี่ยวกับวิธีการตรวจสอบสิทธิ์โปรเจ็กต์ของคุณ
ขั้นตอนที่ 3 กำหนดค่าคุณสมบัติการกระจายของคุณ
ในไฟล์
app/build.gradle
ของคุณ กำหนดค่า App Distribution โดยเพิ่มอย่างน้อยหนึ่งส่วนfirebaseAppDistribution
ตัวอย่างเช่น ในการแจกจ่ายบิลด์ที่release
ไปยังผู้ทดสอบ:android { // ... buildTypes { release { firebaseAppDistribution { artifactType="APK" releaseNotesFile="/path/to/releasenotes.txt" testers="ali@example.com, bri@example.com, cal@example.com" } } } // ... }
App Distribution สามารถกำหนดค่าสำหรับ ประเภทบิลด์และรสชาติของผลิตภัณฑ์ ตัวอย่างเช่น ในการแจกจ่าย
debug
และrelease
บิลด์ในรสชาติผลิตภัณฑ์ "สาธิต" และ "เต็มรูปแบบ":android { // ... buildTypes { debug {...} release {...} } flavorDimensions "version" productFlavors { demo { dimension "version" firebaseAppDistribution { releaseNotes="Release notes for demo version" testers="demo@testers.com" } } full { dimension "version" firebaseAppDistribution { releaseNotes="Release notes for full version" testers="full@testers.com" } } } // ... }
ใช้พารามิเตอร์ต่อไปนี้เพื่อกำหนดค่าการกระจาย:
พารามิเตอร์บิลด์การแจกจ่ายแอป | |
---|---|
appId | รหัสแอป Firebase ของแอปของคุณ จำเป็นก็ต่อเมื่อคุณไม่ได้ติดตั้งปลั๊กอิน Google Services Gradle คุณสามารถค้นหา App ID ได้ในไฟล์ appId="1:1234567890:android:321abc456def7890" |
serviceCredentialsFile | เส้นทางไปยังไฟล์ JSON คีย์ส่วนตัวของบัญชีบริการของคุณ จำเป็นเฉพาะเมื่อคุณใช้การตรวจสอบบัญชีบริการ |
artifactType | ระบุประเภทไฟล์ของแอป สามารถตั้งค่าเป็น |
artifactPath | เส้นทางที่แน่นอนไปยังไฟล์ APK หรือ AAB ที่คุณต้องการอัปโหลด |
releaseNotes หรือ releaseNotesFile | บันทึกประจำรุ่นสำหรับบิลด์นี้ คุณสามารถระบุบันทึกประจำรุ่นได้โดยตรงหรือระบุเส้นทางไปยังไฟล์ข้อความธรรมดา |
testers หรือผู้ทดสอบ testersFile | ที่อยู่อีเมลของผู้ทดสอบที่คุณต้องการแจกจ่ายบิลด์ให้ คุณสามารถระบุผู้ทดสอบเป็นรายการที่อยู่อีเมลที่คั่นด้วยเครื่องหมายจุลภาคได้: testers="ali@example.com, bri@example.com, cal@example.com" หรือคุณสามารถระบุเส้นทางไปยังไฟล์ที่มีรายการที่อยู่อีเมลที่คั่นด้วยเครื่องหมายจุลภาค: testersFile="/path/to/testers.txt" |
groups หรือกลุ่ม groupsFile | กลุ่มผู้ทดสอบที่คุณต้องการแจกจ่ายบิลด์ให้ (ดู จัดการผู้ทดสอบ ) ระบุกลุ่มโดยใช้ คุณสามารถระบุกลุ่มเป็นรายการที่คั่นด้วยเครื่องหมายจุลภาคของนามแฝงกลุ่ม: groups="qa-team, android-testers" หรือคุณสามารถระบุพาธไปยังไฟล์ที่มีรายชื่อนามแฝงกลุ่มที่คั่นด้วยเครื่องหมายจุลภาค: groupsFile="/path/to/tester-groups.txt" |
stacktrace | พิมพ์ stacktrace สำหรับข้อยกเว้นผู้ใช้ สิ่งนี้มีประโยชน์เมื่อทำการดีบักปัญหา |
ขั้นตอนที่ 4 แจกจ่ายแอปของคุณให้กับผู้ทดสอบ
สุดท้าย ในการจัดแพ็กเกจแอปทดสอบและเชิญผู้ทดสอบ ให้สร้างเป้าหมาย
BUILD-VARIANT
และappDistributionUpload BUILD-VARIANT
ด้วย Gradle wrapper ของโปรเจ็กต์ของคุณ โดยที่ BUILD-VARIANT เป็นผลิตภัณฑ์เสริมรสชาติและประเภทบิลด์ที่คุณกำหนดค่าไว้ในขั้นตอนก่อนหน้า สำหรับข้อมูลเพิ่มเติมเกี่ยวกับรสชาติของผลิตภัณฑ์ โปรดดูที่ กำหนดค่าตัวเลือกรุ่นตัวอย่างเช่น หากต้องการเผยแพร่แอปของคุณโดยใช้เวอร์ชันบิลด์ที่
release
ให้เรียกใช้คำสั่งต่อไปนี้:./gradlew assembleRelease appDistributionUploadRelease
หรือหากคุณตรวจสอบสิทธิ์ด้วย บัญชี Google ของคุณและไม่ได้ให้ข้อมูลประจำตัวในไฟล์ Gradle build ของคุณ ให้รวมตัวแปร
FIREBASE_TOKEN
:export FIREBASE_TOKEN=1/a1b2c3d4e5f67890 ./gradlew --stop // Only needed for environment variable changes ./gradlew assembleRelease appDistributionUploadRelease
คุณยังสามารถแทนที่ค่าที่ตั้งไว้ในไฟล์
build.gradle
โดยส่งอาร์กิวเมนต์บรรทัดคำสั่งในรูปแบบของ--<property-name>=<property-value>
ตัวอย่างเช่น:ในการอัปโหลดบิลด์การดีบักไปยัง App Distribution:
./gradlew bundleDebug appDistributionUploadDebug --artifactType="APK"
หากต้องการเชิญผู้ทดสอบเพิ่มเติมหรือนำผู้ทดสอบที่มีอยู่ออกจากโปรเจ็กต์ Firebase ให้ทำดังนี้
./gradlew appDistributionAddTesters --projectNumber=<project_number> --emails="anothertester@email.com, moretesters@email.com"
./gradlew appDistributionRemoveTesters --projectNumber=<project_number> --emails="anothertester@email.com, moretesters@email.com"
เมื่อเพิ่มผู้ทดสอบลงในโปรเจ็กต์ Firebase แล้ว คุณจะเพิ่มผู้ทดสอบลงในแต่ละรุ่นได้ ผู้ทดสอบที่ถูกนำออกจะไม่มีสิทธิ์เข้าถึงรุ่นต่างๆ ในโครงการของคุณอีกต่อไป แต่อาจยังคงเข้าถึงรุ่นต่างๆ ของคุณได้ในช่วงเวลาหนึ่ง
คุณยังสามารถระบุผู้ทดสอบโดยใช้
--file="/path/to/testers.txt"
แทน--emails
งาน
appDistributionAddTesters
และappDistributionRemoveTesters
ยังยอมรับอาร์กิวเมนต์ต่อไปนี้:projectNumber
: หมายเลขโปรเจ็กต์ Firebase ของคุณserviceCredentialsFile
: เส้นทางไปยังไฟล์ข้อมูลรับรองบริการ Google ของคุณ นี่เป็นอาร์กิวเมนต์เดียวกับที่ใช้โดยการดำเนินการอัปโหลด
เมื่อคุณเผยแพร่บิลด์ บิลด์จะพร้อมใช้งานในแดชบอร์ดการแจกจ่ายแอปของคอนโซล Firebase เป็นเวลา 150 วัน (5 เดือน) เมื่อบิลด์มีอายุ 30 วันนับจากหมดอายุ การแจ้งการหมดอายุจะปรากฏในคอนโซลและรายการบิลด์ของผู้ทดสอบในอุปกรณ์ทดสอบ
ผู้ทดสอบที่ไม่ได้รับเชิญให้ทดสอบแอปจะได้รับคำเชิญทางอีเมลเพื่อเริ่มต้น และผู้ทดสอบที่มีอยู่จะได้รับการแจ้งเตือนทางอีเมลว่าเวอร์ชันใหม่พร้อมที่จะทดสอบ (อ่านคู่มือการ ตั้งค่าผู้ทดสอบ สำหรับคำแนะนำในการติดตั้งแอปทดสอบ) คุณสามารถตรวจสอบสถานะของผู้ทดสอบแต่ละคนได้ว่าพวกเขายอมรับคำเชิญหรือไม่และดาวน์โหลดแอปในคอนโซล Firebase หรือไม่
ผู้ทดสอบมีเวลา 30 วันในการยอมรับคำเชิญให้ทดสอบแอปก่อนที่จะหมดอายุ เมื่อคำเชิญหมดอายุ 5 วัน การแจ้งการหมดอายุจะปรากฏในคอนโซล Firebase ถัดจากผู้ทดสอบในรุ่น สามารถต่ออายุคำเชิญได้โดยส่งใหม่โดยใช้เมนูแบบเลื่อนลงในแถวผู้ทดสอบ
ขั้นตอนต่อไป
ไปที่ Codelab ของ Android App Bundle เพื่อเรียนรู้วิธีเผยแพร่ App Bundle รุ่นต่างๆ ทีละขั้นตอน