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 عبر ملفات التزويد. سابقاً، كان المطورون يجمعون UDID للأجهزة، وينشئون ملفات التزويد، ويوزعون IPA عبر خدمات طرف ثالث. قام TestFlight بأتمتة العملية بأكملها: يقوم المختبر بتثبيت التطبيق التجريبي عبر TestFlight App، ويدير المطور الوصول عبر واجهة ويب.
وفقاً لـ WWDC 2024، يعالج TestFlight أكثر من مليوني عملية تثبيت اختباري شهرياً. تدعم المنصة التوزيع على جميع منصات 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 مع صلاحيات Admin أو App Manager في App Store Connect.
قبل الرفع، يجب أن يكون الإصدار موقعاً بشهادة توزيع صالحة وأن يحتوي على ملف تزويد بتوزيع 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 أو API App Store Connect. يوفر 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 للاختبار الخارجي من بضع ساعات إلى يومين. بالنسبة للإصدارات المتكررة، تكون المراجعة أسرع حيث تأخذ Apple في الاعتبار تاريخ المراجعات السابقة.
TestFlight متاح فقط لأعضاء Apple Developer Program (99 دولاراً في السنة). بدون اشتراك، لا يمكن رفع الإصدارات إلى App Store Connect. للتوزيع Ad Hoc بدون اشتراك، يلزم حساب Enterprise أو SideStore.
Ad Hoc يتطلب جمع UDID للأجهزة، إنشاء ملف تزويد وتوزيع IPA يدوياً. يقوم TestFlight بأتمتة العملية بأكملها: يقوم المطور برفع الإصدار، ويقوم المختبر بالتثبيت عبر TestFlight App دون ملفات تزويد أو UDID.
مدة صلاحية الإصدار في TestFlight هي 90 يوماً من تاريخ الرفع. بعد انتهاء الصلاحية، لا يمكن للمختبرين تثبيت التطبيق أو تشغيله. لمواصلة الاختبار، يجب رفع إصدار جديد برقم إصدار متزايد.
TestFlight يدعم تطبيقات macOS بدءاً من macOS 11 Big Sur. يقوم المختبرون بتثبيت النسخة التجريبية عبر TestFlight App على Mac. عملية الرفع والإدارة مماثلة لإصدار iOS: الأرشفة في Xcode، الرفع عبر Organizer.
الخلاصة
سنقوم بتطوير تطبيق جوال جاهز
تقدم IT Sectr تطبيقات iOS وAndroid للشركات الناشئة والشركات منذ عام 2017. سوف نقدم لك النصح ونقترح أفضل حل.