Firebase App Distribution คือบริการของ Google สำหรับแจกจ่ายบิลด์ก่อนวางจำหน่ายของแอปพลิเคชันมือถือให้กับผู้ทดสอบและทีมภายในโดยไม่ต้องเผยแพร่ในร้านค้าแอป App Distribution มีอินเทอร์เฟซแบบรวมสำหรับอัปโหลดไฟล์ APK และ IPA จัดการกลุ่มผู้ทดสอบ และรวบรวมความคิดเห็น ตาม Firebase Documentation, 2026 บริการจะแจ้งให้ผู้ทดสอบทราบโดยอัตโนมัติเกี่ยวกับเวอร์ชันใหม่ทางอีเมลและการแจ้งเตือนแบบพุช และการรวม Fastlane ช่วยให้เผยแพร่บิลด์ได้โดยตรงจากไปป์ไลน์ CI/CD โดยไม่ต้องดำเนินการด้วยตนเอง App Distribution รองรับทั้ง Android (AAB/APK) และ iOS (IPA) รวมถึงการแจกจ่ายแบบ ad-hoc และระดับองค์กร
ประเด็นสำคัญ
Firebase App Distribution คือบริการของ Google สำหรับแจกจ่ายเวอร์ชันก่อนวางจำหน่ายของแอปพลิเคชันมือถือให้กับผู้ทดสอบและผู้มีส่วนได้ส่วนเสีย แตกต่างจากการเผยแพร่ในร้านค้าแอป App Distribution ช่วยให้ส่งบิลด์ถึงผู้เข้าร่วมที่เลือกได้ทันที โดยไม่มีกระบวนการตรวจสอบที่ยาวนาน บริการนี้รวมเข้ากับ Firebase Crashlytics ซึ่งช่วยให้นักพัฒนาได้รับรายงานข้อขัดข้องโดยตรงจากผู้ทดสอบและแก้ไขปัญหาก่อนการเผยแพร่สู่สาธารณะ
กระบวนการแจกจ่ายเวอร์ชันเบต้าแบบดั้งเดิมเกี่ยวข้องกับการส่งไฟล์ APK/IPA ด้วยตนเองทางอีเมล อัปโหลดไปยังบริการแชร์ไฟล์ของบุคคลที่สาม หรือตั้งค่าเซิร์ฟเวอร์ของคุณเอง Firebase App Distribution แก้ปัญหาเหล่านี้: พื้นที่เก็บบิลด์แบบรวมบน Google Cloud การแจ้งเตือนผู้ทดสอบอัตโนมัติ การจัดการการเข้าถึงแบบรวมศูนย์ และความคิดเห็นในตัวผ่าน Firebase Crashlytics บริการนี้จำเป็นสำหรับทีมที่ฝึกใช้ CI/CD และเผยแพร่เป็นประจำ: บิลด์ใหม่จะพร้อมให้ผู้ทดสอบใช้งานภายในหนึ่งนาทีหลังจากอัปโหลด
App Distribution รองรับรูปแบบบิลด์มาตรฐานทั้งหมดสำหรับแพลตฟอร์มมือถือ สำหรับ Android — APK และ Android App Bundle (AAB) พร้อมการสร้าง APK อัตโนมัติจาก AAB ระหว่างการติดตั้ง สำหรับ iOS — ไฟล์ IPA สำหรับการแจกจ่ายแบบ ad-hoc การพัฒนา และระดับองค์กร แต่ละบิลด์มาพร้อมกับบันทึกการเผยแพร่ หมายเลขเวอร์ชัน และรหัสบิลด์สำหรับการติดตาม ขนาดไฟล์อัปโหลดสูงสุดคือ 500 MB และบิลด์จะถูกเก็บไว้เป็นเวลา 150 วัน
การอัปโหลดบิลด์ ไปยัง Firebase App Distribution ทำผ่าน Firebase Console, CLI (firebase appdistribution:distribute) หรือเครื่องมืออัตโนมัติอย่าง Fastlane และ Gradle เมื่ออัปโหลด คุณระบุเวอร์ชันบิลด์ บันทึกการเผยแพร่ และรายชื่อผู้ทดสอบหรือกลุ่มที่ควรได้รับการแจ้งเตือน Firebase กำหนดตัวระบุที่ไม่ซ้ำกันให้กับบิลด์โดยอัตโนมัติและทำให้พร้อมสำหรับการติดตั้งผ่านลิงก์
Firebase Console มีอินเทอร์เฟซเว็บสำหรับอัปโหลดบิลด์และจัดการเวอร์ชัน คอนโซลแสดง ประวัติของบิลด์ทั้งหมดที่อัปโหลดพร้อมวันที่ เวอร์ชัน สถานะ และจำนวนการติดตั้ง นักพัฒนาสามารถปิดใช้งานเวอร์ชันเฉพาะได้หากพบข้อบกพร่องร้ายแรง — ซึ่งจะบล็อกการติดตั้งเวอร์ชันนั้นสำหรับผู้ทดสอบทั้งหมด คอนโซลยังแสดงกราฟการติดตั้งตามวัน ซึ่งช่วยติดตามกิจกรรมการทดสอบ
Firebase CLI ช่วยให้อัปโหลดบิลด์ด้วยคำสั่งเดียว ซึ่งสะดวกสำหรับการรวมเข้ากับไปป์ไลน์ CI/CD คำสั่ง distribute รับพาธไฟล์ โทเค็นการเข้าถึงโปรเจกต์ รายการกลุ่มผู้ทดสอบ และบันทึกการเผยแพร่แบบเลือกได้ การตรวจสอบสิทธิ์ใช้บัญชีบริการ Firebase ที่มีบทบาทผู้ดูแล Firebase App Distribution CLI รองรับบิลด์ทั้ง Android และ iOS โดยตรวจจับแพลตฟอร์มโดยอัตโนมัติจากนามสกุลไฟล์
# การอัปโหลดบิลด์ผ่าน Firebase CLI
firebase appdistribution:distribute \
app-release.apk \
--app 1:123456789:android:abc123def456 \
--groups "qa-team,product-owners" \
--release-notes "แก้ไขบักการอนุญาตแล้ว" \
--token "FIREBASE_TOKEN"
Firebase App Distribution มีระบบจัดการผู้ทดสอบที่ยืดหยุ่น: คุณสามารถเพิ่มผู้เข้าร่วมทางอีเมล สร้างกลุ่มตามบทบาทหรือโปรเจกต์ และกำหนดบิลด์ต่างกันให้กลุ่มต่างกัน เมื่อผู้ทดสอบใหม่ถูกเพิ่ม ระบบจะส่งอีเมลเชิญพร้อมคำแนะนำในการติดตั้งแอปพลิเคชัน ผู้ทดสอบได้รับการแจ้งเตือนอัตโนมัติเกี่ยวกับบิลด์ใหม่แต่ละครั้งที่กำหนดให้กับกลุ่มของตน
กลุ่มช่วยให้จัดระเบียบผู้ทดสอบตามหน้าที่ ตัวอย่างกลุ่ม: ทีม QA (เข้าถึงบิลด์ทั้งหมดได้เต็มที่), เจ้าของผลิตภัณฑ์ (เข้าถึงบิลด์ที่เสถียร), ผู้ทดสอบภายนอก (เข้าถึงแบบจำกัดสำหรับผู้ทดสอบเบต้าภายนอก) ผู้ทดสอบหนึ่งคนสามารถเป็นสมาชิกของหลายกลุ่มได้ เมื่ออัปโหลดบิลด์ นักพัฒนาเลือกกลุ่มเป้าหมาย — เฉพาะสมาชิกของกลุ่มที่เลือกเท่านั้นที่ได้รับการแจ้งเตือน ซึ่งช่วยขจัดสัญญาณรบกวนข้อมูล
ในการเพิ่มผู้ทดสอบด้วยโปรแกรม ใช้ Firebase App Distribution API API ช่วยให้ สร้างผู้ทดสอบ เพิ่มพวกเขาในกลุ่ม และลบเมื่อจำเป็น ซึ่งสะดวกสำหรับการรวมกับระบบจัดการการทดสอบภายในและตัวติดตามข้อบกพร่อง เมื่อผู้ทดสอบถูกเพิ่มผ่าน API พวกเขาจะได้รับอีเมลเชิญพร้อมลิงก์เพื่อติดตั้งแอปพลิเคชันแรกด้วย
const admin = require("firebase-admin")
const serviceAccount = require("./serviceAccountKey.json")
admin.initializeApp({ credential: admin.credential.cert(serviceAccount) })
async function addTestersToGroup(email, groupAlias) {
try {
await admin.appDistribution().addTesters(email, [groupAlias])
console.log("ผู้ทดสอบถูกเพิ่มเข้ากลุ่มแล้ว")
} catch (error) {
console.error("ข้อผิดพลาด:", error)
}
}
addTestersToGroup("tester@example.com", "qa-team")
การแจกจ่ายบิลด์ Android ผ่าน Firebase App Distribution รองรับสองรูปแบบ: APK และ Android App Bundle (AAB) เมื่ออัปโหลด AAB Firebase จะสร้าง APK ที่เข้ากันได้กับอุปกรณ์ของผู้ทดสอบโดยอัตโนมัติโดยใช้ Google Play App Signing ผู้ทดสอบติดตั้งแอปพลิเคชันผ่านลิงก์โดยตรง — พวกเขาไม่จำเป็นต้องเข้าถึง Google Play Console และไม่จำเป็นต้องถูกเพิ่มเป็นผู้ทดสอบใน Play Console ซึ่งช่วยลดความซับซ้อนของกระบวนการทดสอบเบต้าสำหรับ Android อย่างมาก
ในการติดตั้งผ่าน App Distribution ผู้ทดสอบต้องเปิดใช้งานการติดตั้งจากแหล่งที่ไม่รู้จักบนอุปกรณ์ของตน Firebase สร้างลิงก์โดยอัตโนมัติ ไปยังหน้าเว็บที่มีปุ่มติดตั้ง APK สำหรับรูปแบบ AAB อุปกรณ์ต้องรองรับ Play Core Library และมี Google Play Store ติดตั้งอยู่ Firebase แนะนำให้ใช้ AAB สำหรับเวอร์ชันสุดท้ายและ APK สำหรับการทำซ้ำอย่างรวดเร็ว
ปลั๊กอิน Firebase App Distribution สำหรับ Gradle ช่วยให้ส่งบิลด์ได้โดยตรงจากงาน Gradle การกำหนดค่ารวมถึง การเพิ่มปลั๊กอิน com.google.firebase.appdistribution การตั้งค่าบัญชีบริการ และการกำหนดค่ากลุ่มเป้าหมาย หลังการตั้งค่า งาน assembleDistRelease จะสร้างแอปพลิเคชันและอัปโหลดไปยัง Firebase App Distribution ด้วยคำสั่งเดียว
// build.gradle (module: app)
plugins {
id 'com.android.application'
id 'com.google.firebase.appdistribution'
}
android { // standard config }
firebaseAppDistribution {
appId "1:123456789:android:abc123def456"
serviceCredentialsFile "firebase-sa.json"
groups "qa-team"
releaseNotes "บิลด์อัตโนมัติ"
}
การแจกจ่ายบิลด์ iOS ผ่าน Firebase App Distribution ต้องการการตั้งค่าเพิ่มเติมเนื่องจาก Apple จำกัดการติดตั้งแอปพลิเคชันภายนอก App Store ในการแจกจ่ายแอป iOS จำเป็นต้องใช้ใบรับรองแบบ ad-hoc หรือระดับองค์กรจาก Apple Developer Program ผู้ทดสอบต้องถูกเพิ่มในพอร์ทัลนักพัฒนา Apple ในฐานะอุปกรณ์สำหรับการแจกจ่ายแบบ ad-hoc หรือใช้การแจกจ่ายระดับองค์กรโดยไม่มีข้อจำกัดด้านอุปกรณ์
สำหรับการแจกจ่ายแบบ ad-hoc คุณต้องรวบรวม UDID ของอุปกรณ์ผู้ทดสอบทั้งหมดและเพิ่มในพอร์ทัลนักพัฒนา Apple Firebase App Distribution แสดงคำแนะนำแก่ผู้ทดสอบในการค้นหา UDID ของตนและบันทึกอุปกรณ์ที่ลงทะเบียนโดยอัตโนมัติ หลังจากเพิ่ม UDID ในโปรไฟล์การจัดเตรียมและสร้าง IPA แล้ว ผู้ทดสอบจะได้รับลิงก์ติดตั้ง Firebase แนะนำให้ใช้ใบรับรองระดับองค์กรสำหรับโปรเจกต์ที่มีผู้ทดสอบจำนวนมาก เนื่องจาก ad-hoc จำกัดไว้ที่ 100 อุปกรณ์ต่อบัญชี
Fastlane เป็นเครื่องมือที่แนะนำสำหรับการสร้างแอป iOS อัตโนมัติ lane match จัดการใบรับรองและโปรไฟล์การจัดเตรียม ในขณะที่ lane sigh สร้าง IPA สำหรับการแจกจ่าย Firebase App Distribution รวมกับ Fastlane ผ่านปลั๊กอิน firebase_app_distribution ซึ่งอัปโหลด IPA และแจ้งผู้ทดสอบ Fastlane ยังรองรับการจัดการเวอร์ชันและบันทึกการเผยแพร่ผ่านปลั๊กอินเพิ่มเติม
# Fastfile
lane :beta do
match(type: :adhoc)
gym(scheme: "MyApp", export_method: "ad-hoc")
firebase_app_distribution(
app: "1:123456789:ios:abc123def456",
groups: "qa-team",
release_notes: "บิลด์จาก #\{Time.now.strftime
('%Y-%m-%d %H:%M')}"
)
end
การรวม Firebase App Distribution อย่างสมบูรณ์ กับ CI/CD ช่วยให้เผยแพร่บิลด์ใหม่โดยอัตโนมัติทุกครั้งที่มีการคอมมิตในพื้นที่เก็บข้อมูล โดยการตั้งค่าไปป์ไลน์ CI ทีมงานจะได้รับความคิดเห็นทันทีจากผู้ทดสอบภายในไม่กี่นาทีหลังจากการพุชโค้ด App Distribution รองรับระบบ CI ยอดนิยมทั้งหมด: GitHub Actions, GitLab CI, Jenkins, Bitrise และ CircleCI แต่ละแพลตฟอร์มต้องการการกำหนดค่าของตนเอง แต่หลักการทั่วไปเหมือนกัน: สร้าง → อัปโหลด → แจ้งเตือน
GitHub Actions ช่วยให้ตั้งค่าการแจกจ่ายบิลด์อัตโนมัติเมื่อพุชไปยังสาขา develop หรือเมื่อสร้างคำขอดึง เวิร์กโฟลว์รวมถึง การติดตั้ง Java/Flutter/Node.js การสร้างแอปพลิเคชัน การตรวจสอบสิทธิ์ผ่านบัญชีบริการ Firebase และการเรียกใช้ Firebase CLI ด้วยคำสั่ง distribute ความลับ (โทเค็น บัญชีบริการ) ถูกเก็บไว้ใน GitHub Secrets และไม่ถูกเปิดเผยในบันทึกการสร้าง สำหรับ iOS จำเป็นต้องตั้งค่า Xcode และติดตั้ง Fastlane ในเวิร์กโฟลว์เพิ่มเติม
# .github/workflows/distribute.yml
name: Distribute to Firebase
on:
push: { branches: [ develop ] }
jobs:
build-and-distribute:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Setup Java
uses: actions/setup-java@v3
with: { distribution: "temurin", java-version: "17" }
- name: Build APK
run: ./gradlew assembleDebug
- name: Upload to Firebase
uses: wzieba/Firebase-Distribution-GitHub-Action@v1
with:
appId: "${{ secrets.FIREBASE_APP_ID }}"
serviceCredentialsFileContent: "${{ secrets.FIREBASE_SA_KEY }}"
groups: qa-team
file: app/build/outputs/apk/debug/app-debug.apk
Firebase App Distribution รวมกับ Firebase Crashlytics สำหรับการรวบรวมรายงานข้อขัดข้องอัตโนมัติจากผู้ทดสอบ Crashlytics เชื่อมโยงข้อขัดข้องโดยอัตโนมัติ กับเวอร์ชันบิลด์และอุปกรณ์เฉพาะ ซึ่งช่วยระบุและแก้ไขปัญหาได้อย่างรวดเร็ว ผู้ทดสอบยังสามารถส่งภาพหน้าจอและความคิดเห็นผ่านอินเทอร์เฟซเว็บของ App Distribution โดยได้รับลิงก์แบบฟอร์มความคิดเห็นหลังจากติดตั้งบิลด์
คำถามที่พบบ่อย
Firebase App Distribution เป็นบริการข้ามแพลตฟอร์ม (Android + iOS) แตกต่างจาก TestFlight ที่ทำงานเฉพาะ iOS เท่านั้น App Distribution ยังรวมกับ Crashlytics และ Firebase Analytics โดยให้ระบบนิเวศแบบรวมสำหรับการทดสอบเบต้าบนทั้งสองแพลตฟอร์ม
บิลด์ถูกเก็บไว้ 150 วัน นับจากวันที่อัปโหลด หลังจากช่วงเวลานี้ บิลด์จะถูกลบโดยอัตโนมัติ ขอแนะนำให้อัปโหลดบิลด์ใหม่เป็นประจำและลบบิลด์ที่ล้าสมัยด้วยตนเองผ่าน Firebase Console เพื่อป้องกันไม่ให้ผู้ทดสอบติดตั้งเวอร์ชันเก่า
ไม่มีข้อจำกัด เกี่ยวกับจำนวนผู้ทดสอบใน Firebase App Distribution สำหรับการแจกจ่ายแบบ ad-hoc ของ iOS ให้ใช้ข้อจำกัดของ Apple ที่ 100 อุปกรณ์ต่อบัญชี สำหรับการแจกจ่ายระดับองค์กรของ Android และ iOS ไม่มีข้อจำกัดเกี่ยวกับจำนวนผู้ทดสอบ
ได้ App Distribution รองรับ AAB (Android App Bundle) Firebase สร้าง APK จาก AAB โดยอัตโนมัติสำหรับแต่ละอุปกรณ์ของผู้ทดสอบโดยใช้ Google Play App Signing ซึ่งสะดวกเป็นพิเศษสำหรับการทดสอบก่อนเผยแพร่บน Play Store
ใช่ App Distribution รวมอยู่ในแผน Spark ฟรีของ Firebase ข้อจำกัดของแผน Spark: ผู้ทดสอบสูงสุด 500 คนและติดตั้ง 25,000 ครั้งต่อเดือนต่อโปรเจกต์ แผน Blaze ยกเลิกข้อจำกัดเหล่านี้และเพิ่มการสนับสนุนลำดับความสำคัญ
สรุป
เราจะพัฒนาแอปพลิเคชันบนมือถือแบบครบวงจร
IT Sectr สร้างแอปพลิเคชัน iOS และ Android สำหรับสตาร์ทอัพและธุรกิจตั้งแต่ปี 2017 เราจะให้คำแนะนำและเสนอวิธีแก้ปัญหาที่ดีที่สุดแก่คุณ
อ่านเพิ่มเติม