TestFlight คือแพลตฟอร์มอย่างเป็นทางการของ Apple สำหรับแจกจ่ายบิลด์แอปก่อนวางจำหน่ายให้กับผู้ทดสอบ ช่วยให้นักพัฒนาสามารถอัปโหลดเวอร์ชันเบต้าไปยัง App Store Connect จัดการการเข้าถึง และรวบรวมความคิดเห็นก่อนเผยแพร่ ตามเอกสารสำหรับนักพัฒนาของ Apple TestFlight รองรับผู้ทดสอบภายนอกสูงสุด 10,000 คนผ่านลิงก์สาธารณะ และผู้ทดสอบภายในสูงสุด 100 คนผ่าน Apple ID
ประเด็นสำคัญ
TestFlight คือแพลตฟอร์มทดสอบเบต้าที่รวมอยู่ใน App Store Connect สำหรับแจกจ่ายบิลด์แอปก่อนวางจำหน่ายก่อนการเผยแพร่ใน App Store นักพัฒนาอัปโหลดบิลด์ที่เก็บถาวรผ่าน Xcode และแจกจ่ายให้กับผู้ทดสอบโดยไม่ต้องแจกจ่ายไฟล์ IPA ด้วยตนเอง
Apple ซื้อ TestFlight ในปี 2014 เพื่อแทนที่การแจกจ่าย Ad Hoc ผ่าน Provisioning Profiles ก่อนหน้านี้ นักพัฒนาต้องรวบรวม UDID ของอุปกรณ์ สร้าง provisioning profile และแจกจ่าย IPA ผ่านบริการของบุคคลที่สาม TestFlight ทำให้กระบวนการทั้งหมดเป็นอัตโนมัติ: ผู้ทดสอบติดตั้งแอปเบต้าผ่าน TestFlight App ในขณะที่นักพัฒนาจัดการการเข้าถึงผ่านอินเทอร์เฟซเว็บ
ตามข้อมูลของ WWDC 2024 TestFlight ประมวลผลการติดตั้งทดสอบมากกว่า 2 ล้านครั้งต่อเดือน แพลตฟอร์มรองรับการแจกจ่ายบนแพลตฟอร์ม Apple ทั้งหมด รวมถึง iOS, iPadOS, macOS, tvOS, watchOS และ visionOS ทำให้เป็นเครื่องมือทดสอบเบต้าแบบครบวงจรเพียงตัวเดียวในระบบนิเวศของ Apple
TestFlight แบ่งการทดสอบเป็นสองประเภท: การทดสอบภายในสำหรับสมาชิกทีม (สูงสุด 100 คน บิลด์พร้อมใช้งานทันทีหลังจากอัปโหลด) และการทดสอบภายนอกสำหรับผู้ใช้ภายนอก (สูงสุด 10,000 คน ต้องผ่าน Beta App Review) การทดสอบภายในไม่ต้องมีการกลั่นกรอง ทำให้เหมาะสำหรับการตรวจสอบบิลด์อย่างรวดเร็วภายในทีม
การทดสอบภายนอกอนุญาตให้เชิญผู้ทดสอบทางอีเมลหรือผ่านลิงก์สาธารณะ หลังจากผ่าน Beta App Review บิลด์จะพร้อมให้ดาวน์โหลดสำหรับผู้ที่ได้รับเชิญทั้งหมด สำหรับแอปที่เผยแพร่เป็นครั้งแรก การทดสอบภายนอกเป็นสิ่งจำเป็นตามแนวทางการตรวจสอบ App Store
ขั้นตอนการทำงานของ TestFlight เริ่มต้นด้วยการเก็บถาวรแอปใน Xcode และอัปโหลดไปยัง App Store Connect ผ่าน Organizer หรือ Transporter หลังจากอัปโหลด บิลด์จะผ่านการตรวจสอบความถูกต้องและการสแกนความปลอดภัยโดยอัตโนมัติ
ผู้ทดสอบภายในได้รับการแจ้งเตือนเกี่ยวกับบิลด์ที่พร้อมใช้งานผ่าน TestFlight App พวกเขาสามารถติดตั้งแอปและแสดงความคิดเห็นผ่านอินเทอร์เฟซภาพหน้าจอและความคิดเห็นข้อความในตัว สำหรับผู้ทดสอบภายนอก ต้องได้รับการอนุมัติจาก Beta App Review หลังจากนั้นบิลด์จะถูกแจกจ่ายเช่นเดียวกับบิลด์ภายใน
TestFlight จะรวบรวม เมตริกการใช้งาน โดยอัตโนมัติ: จำนวนการติดตั้ง บันทึกการขัดข้อง ภาพหน้าจอพร้อมคำอธิบายประกอบ และความคิดเห็น นักพัฒนาจะเห็นข้อมูลนี้ในส่วน TestFlight ของ App Store Connect ข้อมูลทั้งหมดจะถูกรวบรวมตามเวอร์ชันบิลด์ ทำให้ง่ายต่อการเปรียบเทียบความเสถียรระหว่างบิลด์ต่างๆ
แต่ละบิลด์ที่อัปโหลดไปยัง TestFlight มี อายุ 90 วัน หลังจากหมดอายุ ผู้ทดสอบจะไม่สามารถติดตั้งหรือเปิดแอปได้อีกต่อไป เพื่อดำเนินการทดสอบต่อ ต้องอัปโหลดบิลด์ใหม่ที่มีหมายเลขเวอร์ชันเพิ่มขึ้น ข้อจำกัดนี้กระตุ้นให้นักพัฒนาอัปเดตบิลด์เป็นประจำ
เมื่อใกล้วันหมดอายุ TestFlight จะส่งการแจ้งเตือนไปยังทั้งนักพัฒนาและผู้ทดสอบ หากไม่ได้อัปโหลดบิลด์ใหม่ทันเวลา การทดสอบจะถูกขัดจังหวะและผู้เข้าร่วมจะสูญเสียการเข้าถึงแอปจนกว่าเวอร์ชันใหม่จะปรากฏ
การตั้งค่า TestFlight เริ่มต้นใน App Store Connect ในส่วน TestFlight ในการเริ่มต้น จำเป็นต้องมีบิลด์แอปที่อัปโหลดอย่างน้อยหนึ่งบิลด์ อินเทอร์เฟซแบ่งออกเป็นสามส่วนหลัก: บิลด์ ผู้ทดสอบภายใน และกลุ่มภายนอก
ผู้ทดสอบภายในถูกเพิ่มผ่าน Apple ID ผู้เข้าร่วมแต่ละคนต้องได้รับเชิญผ่าน App Store Connect ด้วยบทบาทที่รวมสิทธิ์การเข้าถึงการทดสอบ หลังจากได้รับคำเชิญ ผู้ทดสอบจะได้รับอีเมลและสามารถติดตั้งแอปผ่าน TestFlight App บนอุปกรณ์ของตน
สำหรับการทดสอบภายนอก จะสร้างกลุ่มที่รวบรวมผู้ทดสอบตามสถานการณ์ แต่ละกลุ่มเชื่อมโยงกับบิลด์เฉพาะ กลุ่มสามารถมีลิงก์สาธารณะสำหรับการเข้าร่วมด้วยตนเอง — สะดวกสำหรับโครงการโอเพนซอร์สหรือการทดสอบเบต้าจำนวนมาก ตามเอกสารสำหรับนักพัฒนาของ Apple ลิงก์สาธารณะสามารถเพิกถอนได้ตลอดเวลาโดยไม่สูญเสียการเข้าถึงของผู้ทดสอบที่เข้าร่วมแล้ว
การอัปโหลดบิลด์ไปยัง TestFlight ดำเนินการผ่าน Xcode Organizer หลังจากเก็บถาวรโปรเจกต์ การอัปโหลดต้องใช้บัญชี Apple Developer Program ที่มีสิทธิ์ Admin หรือ App Manager ใน App Store Connect
ก่อนอัปโหลด บิลด์ต้องได้รับการลงนามด้วยใบรับรองการแจกจ่ายที่ถูกต้อง และมี Provisioning Profile ที่มีการแจกจ่าย App Store Xcode จะกำหนดค่าการลงนามโดยอัตโนมัติผ่านการลงนามอัตโนมัติเมื่อมีบัญชีนักพัฒนาที่ใช้งานอยู่
# Upload via xcrun altool (Xcode 15+ uses notarytool)
xcrun notarytool submit MyApp.ipa --apple-id "developer@example.com" --team-id "TEAMID123" --password "@keychain:AC_PASSWORD" --wait
# Upload to App Store Connect directly
xcrun altool --upload-app -f MyApp.ipa -t ios -u "developer@example.com" -p "@keychain:AC_PASSWORD"
หลังจากอัปโหลด บิลด์จะผ่านการตรวจสอบโดยอัตโนมัติ: การตรวจสอบความถูกต้องของไบนารี การสแกนโค้ดที่เป็นอันตราย และการตรวจสอบการปฏิบัติตามแนวทางการตรวจสอบ App Store โดยทั่วไปการตรวจสอบใช้เวลาตั้งแต่ไม่กี่นาทีถึงหนึ่งชั่วโมง สถานะจะแสดงใน App Store Connect ในส่วน TestFlight
สำหรับ CI/CD (GitHub Actions, Bitrise, Jenkins) จะใช้ xcrun altool หรือ notarytool เพื่ออัปโหลดบิลด์โดยตรงโดยไม่ต้องใช้ Xcode คีย์การตรวจสอบสิทธิ์จะถูกเก็บไว้ใน Keychain หรือ App Store Connect API Fastlane มีแอ็กชัน upload_to_testflight สำหรับทำให้กระบวนการเป็นอัตโนมัติทั้งหมด
การเชิญผู้ทดสอบไปยัง TestFlight ขึ้นอยู่กับประเภทของการทดสอบ ผู้ทดสอบภายในจะถูกเพิ่มโดยตรงใน App Store Connect ผ่าน Apple ID และสามารถเข้าถึงบิลด์ทั้งหมดทันทีหลังจากอัปโหลด ผู้ทดสอบภายนอกจะได้รับเชิญผ่านกลุ่มที่มีบิลด์เฉพาะที่กำหนด
สำหรับการทดสอบภายนอก ต้องผ่าน Beta App Review — ซึ่งเป็นเวอร์ชันย่อของการตรวจสอบ App Store ที่ตรวจสอบฟังก์ชันพื้นฐานและการปฏิบัติตามกฎ บิลด์ภายนอกแรกมักจะผ่านการตรวจสอบภายใน 1–2 วัน ส่วนบิลด์ถัดไปจะเร็วกว่า หลังจากได้รับการอนุมัติ ผู้ทดสอบทั้งหมดในกลุ่มจะได้รับการแจ้งเตือน
ลิงก์สาธารณะช่วยให้การเชิญง่ายขึ้น: นักพัฒนาเผยแพร่ลิงก์บนเว็บไซต์หรือโซเชียลมีเดีย ผู้ใช้คลิกลิงก์และเข้าร่วมการทดสอบโดยอัตโนมัติ TestFlight รองรับผู้เข้าร่วมสูงสุด 10,000 คนต่อกลุ่มภายนอก และจำนวนกลุ่มไม่จำกัด สามารถกำหนดค่าหลายกลุ่มที่มีบิลด์ต่างกันสำหรับแต่ละแอปได้
ผู้ทดสอบส่งความคิดเห็นผ่าน TestFlight App โดยแนบภาพหน้าจอและคำอธิบายประกอบ นักพัฒนาจะเห็นความคิดเห็นทั้งหมดใน App Store Connect โดยจัดกลุ่มตามบิลด์ ความคิดเห็นแต่ละรายการประกอบด้วยเวอร์ชันระบบปฏิบัติการ รุ่นอุปกรณ์ และประทับเวลา ซึ่งช่วยให้สามารถจำลองและแก้ไขข้อบกพร่องได้ง่ายขึ้น
การเผยแพร่แอปจาก TestFlight ไปยัง App Store ไม่จำเป็นต้องสร้างบิลด์ใหม่ เพียงเลือกบิลด์เบต้าที่อนุมัติแล้วใน App Store Connect แล้วคลิกส่งเพื่อตรวจสอบ บิลด์เดียวกันที่ผ่านการทดสอบเบต้าจะถูกส่งไปตรวจสอบ App Store ขั้นสุดท้ายโดยไม่ต้องคอมไพล์ใหม่
ซึ่งรับประกันว่าเวอร์ชันที่ผู้ทดสอบทดสอบแล้วจะเข้าสู่ระบบการทำงานจริง ซึ่งช่วยลดความเสี่ยงของความแตกต่างระหว่างบิลด์เบต้าและบิลด์ที่เผยแพร่ หลังจากผ่านการตรวจสอบ App Store ขั้นสุดท้าย บิลด์จะถูกเผยแพร่ใน App Store โดยอัตโนมัติตามกฎความพร้อมใช้งานที่กำหนดค่าไว้
ก่อนเผยแพร่ นักพัฒนาต้องอัปเดตข้อมูลเมตา: คำอธิบายเวอร์ชัน ภาพหน้าจอสำหรับเวอร์ชันระบบปฏิบัติการใหม่ และข้อมูลเกี่ยวกับการเปลี่ยนแปลง บิลด์ TestFlight ที่ไม่ได้ส่งไปยัง App Store จะถูกลบโดยอัตโนมัติ 90 วันหลังจากอัปโหลด พร้อมกับข้อมูลการทดสอบทั้งหมด
คำถามที่พบบ่อย
การตรวจสอบอัตโนมัติโดยปกติใช้เวลา 5 นาทีถึงหนึ่งชั่วโมง Beta App Review สำหรับการทดสอบภายนอกใช้เวลาตั้งแต่ไม่กี่ชั่วโมงถึง 2 วัน สำหรับบิลด์ถัดไป การตรวจสอบจะเร็วกว่าเนื่องจาก Apple พิจารณาประวัติการตรวจสอบก่อนหน้านี้
TestFlight มีให้เฉพาะสมาชิก Apple Developer Program (99 ดอลลาร์สหรัฐ/ปี) เท่านั้น หากไม่มีสมาชิกภาพ จะไม่สามารถอัปโหลดบิลด์ไปยัง App Store Connect ได้ สำหรับการแจกจ่าย Ad Hoc โดยไม่มีสมาชิกภาพ จำเป็นต้องมีบัญชี Enterprise หรือ SideStore
Ad Hoc ต้องรวบรวม UDID ของอุปกรณ์ สร้าง Provisioning Profile และแจกจ่าย IPA ด้วยตนเอง TestFlight ทำให้กระบวนการทั้งหมดเป็นอัตโนมัติ: นักพัฒนาอัปโหลดบิลด์ ผู้ทดสอบติดตั้งผ่าน TestFlight App โดยไม่ต้องมี provisioning profile หรือ UDID
อายุของบิลด์ใน TestFlight คือ 90 วันนับจากวันที่อัปโหลด หลังจากหมดอายุ ผู้ทดสอบจะไม่สามารถติดตั้งหรือเปิดแอปได้ เพื่อดำเนินการทดสอบต่อ ต้องอัปโหลดบิลด์ใหม่ที่มีหมายเลขเวอร์ชันเพิ่มขึ้น
TestFlight รองรับแอปพลิเคชัน macOS ตั้งแต่ macOS 11 Big Sur ผู้ทดสอบติดตั้งเวอร์ชันเบต้าผ่าน TestFlight App บน Mac กระบวนการอัปโหลดและการจัดการเหมือนกับเวอร์ชัน iOS: เก็บถาวรใน Xcode อัปโหลดผ่าน Organizer
สรุป
เราจะพัฒนาแอปพลิเคชันบนมือถือแบบครบวงจร
IT Sectr สร้างแอปพลิเคชัน iOS และ Android สำหรับสตาร์ทอัพและธุรกิจตั้งแต่ปี 2017 เราจะให้คำแนะนำและเสนอวิธีแก้ปัญหาที่ดีที่สุดแก่คุณ