TestFlight: اختبار تطبيق iPhone قبل إرساله إلى Apple
بقلم Mehdi Azizi
حُدّث في ، 8 د
مختبرون داخليون أو خارجيون، مراجعة بيتا، رابط عام، وبيلد صالح 90 يومًا: شرح بسيط لـ TestFlight مع قائمة ما تتحقق منه قبل الإرسال إلى Apple.
ما هو TestFlight وما فائدته؟
TestFlight هي خدمة من Apple تتيح لك تثبيت تطبيقك على أجهزة iPhone حقيقية قبل صدوره على App Store. ترسل بيلد (build) إلى App Store Connect، وتدعو مختبرين، فيثبّتونه عبر تطبيق TestFlight المجاني على App Store. هناك نوعان من المختبرين: الداخليون، حتى 100 عضو من فريقك، دون مراجعة من Apple؛ والخارجيون، حتى 10 000 شخص، تدعوهم بالبريد الإلكتروني أو برابط عام، بعد مراجعة بيتا لأول بيلد لك. يبقى كل بيلد قابلًا للاختبار 90 يومًا.
| المعيار | المختبرون الداخليون | المختبرون الخارجيون |
|---|---|---|
| الحد الأقصى | 100 | 10 000 |
| الوصول إلى حسابك | نعم، مع دور محدد | لا |
| الدعوة | إضافة إلى المجموعة الداخلية | بريد إلكتروني أو رابط عام |
| مراجعة بيتا من Apple | لا توجد | على أول بيلد |
| لمن | أنت، شريك، شخص قريب | أصدقاء، أوائل المستخدمين |
لاستخدام TestFlight، تحتاج إلى حساب Apple Developer مدفوع: الخدمة غير متاحة بحساب مجاني. يفترض باقي هذا الدليل أن لديك حسابًا ضمن البرنامج العادي: برنامج Apple للمؤسسات لا يمنح الوصول إلى TestFlight.
في تطبيقاتي، يمر كل بيلد أرسله عبر EAS Submit بـ TestFlight وبجهاز iPhone الخاص بي قبل إرساله إلى المراجعة. هناك أجد المشاكل التي لا تظهر أثناء التطوير.
إرسال بيلد إلى TestFlight
البيلد هو نسخة مُجمَّعة وموقَّعة من تطبيقك: إذا كان التوقيع خاطئًا، ترفضه Apple عند الإرسال بالخطأ ITMS-90034. لكي يظهر في TestFlight، يجب أن ترسله إلى App Store Connect. مع Expo، الأمر هو eas build --platform ios ثم eas submit --platform ios، مع صورة بناء حديثة بما يكفي لتجنب ITMS-90725. بحسب توثيق Expo، يظهر البيلد في TestFlight بعد أن تعالجه Apple، عادةً خلال 10 إلى 15 دقيقة. يمكنك فعل كل ذلك من جهاز PC: دليل نشر تطبيق iOS بدون Mac يشرح السلسلة كاملة.
تفصيلان يعرقلان كثيرين في المرة الأولى:
- يجب أن يتغير رقم البيلد مع كل إرسال. ترفض Apple بيلدين بالرقم نفسه للإصدار نفسه. مع EAS، فعّل الزيادة التلقائية ولن تفكر في الأمر بعد ذلك.
- سؤال التشفير. ما دمت لم تُجب عن السؤال المتعلق باستخدام التشفير، يبقى البيلد معلقًا بحالة امتثال ناقص. يمكنك الإجابة عنه في كل مرة داخل App Store Connect، أو التصريح به مرة واحدة في إعدادات تطبيقك.
المختبرون الداخليون: فريقك، دون انتظار
المختبرون الداخليون هم مستخدمو حسابك على App Store Connect، ولكل منهم دور محدد. تسمح Apple بما يصل إلى 100 منهم، ويمكن لكل واحد تثبيت التطبيق على عدة أجهزة، حتى 30 جهازًا.
ميزتهم الكبرى: لا مراجعة بيتا. فور انتهاء معالجة البيلد، دون خطأ تلقائي مثل ITMS-90717، تضيفه إلى مجموعتك الداخلية فيصبح متاحًا. هذه هي المجموعة المناسبة لك، ولشريك أو شخص قريب تمنحه وصولًا إلى حسابك.
حدّهم: يجب إضافتهم كمستخدمين في حسابك على App Store Connect. هذا لا يناسب الغرباء.
المختبرون الخارجيون ومراجعة بيتا
لا يحتاج المختبرون الخارجيون إلى أي وصول إلى حسابك. يمكنك دعوة ما يصل إلى 10 000 منهم، بالبريد الإلكتروني أو برابط عام. هذه هي المجموعة المناسبة للأصدقاء وأوائل المستخدمين والمجتمعات.
في المقابل، تتحقق Apple من البيلد قبل إتاحته لهم. عندما تضيف أول بيلد من إصدار ما إلى مجموعة خارجية، يذهب إلى مراجعة بيتا. البيلدات التالية من الإصدار نفسه لا تتطلب بالضرورة مراجعة كاملة.
قبل هذا الإرسال، يطلب منك App Store Connect معلومات الاختبار:
- وصفًا للنسخة التجريبية، يخبر المختبرين بما يجب أن ينظروا إليه؛
- عنوان بريد إلكتروني للملاحظات؛
- بيانات التواصل معك، حتى تتمكن Apple من الوصول إليك.
مراجعة بيتا ليست مراجعة App Store. البيلد المقبول في TestFlight قد يُرفض مع ذلك عند النشر.
تتحقق مراجعة بيتا من التزام البيلد بالقواعد، لكن المراجعة النهائية تنظر أيضًا في صفحة تطبيقك واشتراكاتك ونصوصك القانونية والتجربة الكاملة. تذكّر أسباب الرفض الشائعة، المشروحة في لماذا ترفض Apple تطبيقًا.
دعوة المختبرين برابط عام
الرابط العام هو أبسط طريقة لجعل أشخاص لا تعرفهم بعد يختبرون تطبيقك. إليك الخطوات بحسب Apple، مع تسميات الواجهة بالإنجليزية:
- في App Store Connect، افتح تطبيقك ثم تبويب TestFlight.
- تحت External Testing، اختر مجموعتك الخارجية.
- انقر على Create Public Link.
- اختر Open to Anyone لفتح الرابط للجميع، أو Filter by Criteria لقصره على أجهزة وإصدارات iOS معينة.
- إن أردت، حدد عددًا أقصى للمختبرين عبر Set Limit.
بعد ذلك تشارك الرابط حيث تشاء: رسالة، شبكة اجتماعية، بريد إلكتروني. يثبّت الشخص تطبيق TestFlight، ويفتح الرابط ويقبل الدعوة.
أمران يجب أن تعرفهما قبل نشره على نطاق واسع:
- حدد عددًا أقصى. إذا انتشر رابطك أكثر من المتوقع، ستبقى متحكمًا في عدد المختبرين.
- مختبرو الرابط العام مجهولو الهوية. لا يعرض لك App Store Connect عنهم سوى تاريخ التثبيت والجلسات والأعطال. إذا أردت معرفة من اختبر ماذا، فادعُهم بالبريد الإلكتروني بدلًا من ذلك.
كم يدوم بيلد TestFlight؟
يبقى البيلد متاحًا للمختبرين مدة 90 يومًا. بعدها تنتهي صلاحيته ولا يعود بإمكان مختبريك فتحه. إذا استمرت نسختك التجريبية مدة أطول، أرسل ببساطة بيلدًا جديدًا قبل انتهاء المهلة.
عمليًا، سترسل بيلدات جديدة أكثر بكثير: مع كل إصلاح مهم. كل بيلد جديد تضيفه إلى المجموعة يُعرض على مختبريك، فيحصلون عليه من تطبيق TestFlight.
جمع ملاحظات المختبرين
يتضمن TestFlight نظامًا للملاحظات: يلتقط المختبر صورة شاشة داخل تطبيقك، ويمكنه إضافة تعليقات عليها، ثم يرسلها إليك. إذا تعطل التطبيق، يصلك تقرير عطل، ويمكن للمختبر إضافة سياق. تجد كل ذلك في App Store Connect.
هذا مفيد، لكنه لا يكفي لفهم عطل محدد. في تطبيقاتي، أضيف Sentry، الذي يرفع الخطأ مع سطر الكود المسؤول، وPostHog، الذي يُظهر أين يتوقف المستخدمون. كلاهما يعمل في بيلد TestFlight كما في الإنتاج.
اختبار الاشتراكات في TestFlight
إذا كان تطبيقك يبيع اشتراكًا، فـ TestFlight هو المكان الذي تتحقق فيه من أنه يعمل فعلًا. عمليات الشراء في بيلد TestFlight تمر عبر بيئة الاختبار لدى Apple: لا تُخصم أي مبالغ من مختبريك. التجديدات مُسرَّعة: يتجدد كل اشتراك مرة يوميًا، ست مرات كحد أقصى خلال أسبوع، أيًا كانت مدته الحقيقية.
تحقق على الأقل من أن الأسعار المعروضة صحيحة، وأن الشراء يفتح التطبيق فعلًا، وأن زر الاستعادة يسترجع الاشتراك بعد إعادة التثبيت. أستخدم RevenueCat لإدارة اشتراكات تطبيقاتي؛ الإعداد الكامل، من منتجات App Store Connect إلى صفحة الدفع (paywall)، موصوف في صفحة الاشتراكات داخل تطبيقات iOS.
ما يجب أن تختبره قبل الإرسال إلى Apple
هذه هي القائمة التي أطبقها قبل كل إرسال إلى المراجعة. كل بند يقابل سبب رفض أو عطلًا يمكن تجنبه.
التشغيل الأول
- احذف التطبيق، وأعد تثبيته من TestFlight، وافتحه. هذا ما سيفعله المراجع.
- مرّ على شاشات التعريف (onboarding) كاملة، دون تخطي أي شيء.
- ارفض كل إذن (الإشعارات، الكاميرا، الموقع) وتحقق من أن التطبيق يستمر في العمل.
المال
- صفحة الدفع تعرض الأسعار والمدة وروابط شروط الاستخدام وسياسة الخصوصية.
- الشراء يعمل، والاستعادة كذلك.
- كل المنتجات المُعدّة ظاهرة للمراجع: الإرشاد 2.1 يشترط أن تكون عمليات الشراء داخل التطبيق كاملة وظاهرة وتعمل.
الظروف الصعبة
- وضع الطيران والشبكة البطيئة: رسالة واضحة، لا شاشة بيضاء.
- أصغر iPhone تدعمه وأكبرها: لا شيء مقطوع، ولا شيء تخفيه لوحة المفاتيح. شاشة مقطوعة على iPhone صغير هي ما كلّفني رفضًا لتطبيق Solys.
- النصوص الطويلة، إذا كان تطبيقك مترجمًا.
الملف الخاص بالمراجع
- إذا كان تطبيقك يتطلب تسجيل الدخول، ضع حساب تجربة في ملاحظات المراجعة، مع تشغيل الواجهة الخلفية (backend). الإرشاد 2.1 يطلب ذلك صراحة.
- ملاحظات مراجعة تشرح في جملتين ما يفعله التطبيق وأين تجد الوظيفة الرئيسية.
إذا رُفض تطبيقك رغم كل ذلك، تشرح صفحة تطبيق رفضته Apple كيف ترد دون أن تخسر أسبوعًا. وللنظرة الشاملة على النشر، من صفحة التطبيق إلى الإصدار، اقرأ نشر تطبيق على App Store.
جدول اختبار تملؤه على البيلد الخاص بك
حمّل جدول السيناريوهات الـ 16 بصيغة CSV. يفصل بين التحضير، والإجراء المطلوب، والنتيجة المتوقعة، والدليل الملاحَظ. استورده في Numbers أو Excel أو Google Sheets، ثم سجّل الإصدار والجهاز ونتيجة كل تجربة.
لدفتر قراءة افتراضي، لا تكفي عبارة «حفظ صفحة»: سجّل الصفحة 24، وأغلق التطبيق تمامًا، وأعد تشغيله وتأكد من استرجاع القيمة. الاختبار الذي لم يُنفَّذ يبقى «للاختبار». إذا لم يكن في تطبيقك أي اشتراك، اكتب «غير منطبق» لسيناريوهات الشراء، مع ذكر هذا السبب.
الجدول نقطة انطلاق تكيّفها، وليس شهادة. ستجد أيضًا ملاحظات App Review والنماذج المجانية الأخرى لتشرح للمراجع المسار الذي تحققت منه فعلًا.
الانتقال من TestFlight إلى App Store
TestFlight هو المرحلة التي يصبح فيها تطبيقك حقيقيًا: يعمل على iPhone حقيقي، بين أيدي أشخاص حقيقيين. في مسار iOS Kit، هذه هي المرحلة الثانية: بناء جوهر التطبيق واختباره على جهاز iPhone الخاص بك مع TestFlight، قبل ربط الاشتراكات ثم التحضير للنشر.
بعد TestFlight تأتي مراجعة Apple: يجمع Apple Review Kit قائمة التحقق التي أستخدمها قبل الإرسال والملاحظات الموجهة للمراجع. وتعرض الصفحة الرئيسية المراحل الأربع لـإنشاء تطبيقك للهاتف باستخدام Claude Code.
لا أحد يستطيع أن يضمن لك أن Apple ستقبل تطبيقك: القرار لـ Apple.
الأسئلة الشائعة
كيف تختبر تطبيق iPhone باستخدام TestFlight؟
أرسل بيلد إلى App Store Connect، ثم أضفه إلى مجموعة مختبرين. مع Expo، تبنيه باستخدام EAS Build وترسله باستخدام EAS Submit: يظهر في TestFlight بعد أن تعالجه Apple، عادةً خلال 10 إلى 15 دقيقة بحسب Expo. يثبّته مختبروك عبر تطبيق TestFlight المجاني على App Store. تحتاج إلى حساب Apple Developer مدفوع.
كيف تنشئ رابط TestFlight لدعوة المختبرين؟
في App Store Connect، افتح تبويب TestFlight لتطبيقك، واختر مجموعتك تحت External Testing وانقر على Create Public Link. اختر Open to Anyone أو Filter by Criteria، ثم حدد عددًا أقصى عبر Set Limit. يبقى مختبرو الرابط العام مجهولي الهوية: إذا أردت معرفة من اختبر ماذا، فادعُهم بالبريد الإلكتروني بدلًا من ذلك.
هل تحل مراجعة بيتا في TestFlight محل مراجعة App Store؟
لا. تتحقق مراجعة بيتا من التزام البيلد بالقواعد، لكن المراجعة النهائية تنظر أيضًا في صفحة تطبيقك والتصنيف العمري واشتراكاتك ونصوصك القانونية والتجربة الكاملة. لذلك قد يُرفض بيلد مقبول في TestFlight عند النشر. المختبرون الخارجيون وحدهم يستلزمون مراجعة بيتا، على أول بيلد من الإصدار: المختبرون الداخليون لا يمرون بأي مراجعة.
كم عدد المختبرين الذين يمكن دعوتهم على TestFlight؟
يمكنك دعوة ما يصل إلى 100 مختبر داخلي وما يصل إلى 10 000 مختبر خارجي. الداخليون أعضاء في حسابك على App Store Connect، دون مراجعة بيتا، ويمكن لكل منهم تثبيت التطبيق على ما يصل إلى 30 جهازًا. أما الخارجيون فتدعوهم بالبريد الإلكتروني أو برابط عام، بعد مراجعة بيتا لأول بيلد. يبقى كل بيلد قابلًا للاختبار 90 يومًا.
هل يمكن اختبار اشتراك في TestFlight دون خصم أي مبلغ؟
نعم، عمليات الشراء في بيلد TestFlight تمر عبر بيئة الاختبار لدى Apple: لا تُخصم أي مبالغ من مختبريك. التجديدات مُسرَّعة: يتجدد كل اشتراك مرة يوميًا، ست مرات كحد أقصى خلال أسبوع، أيًا كانت مدته الحقيقية. تحقق على الأقل من الأسعار المعروضة، ومن فتح التطبيق بعد الشراء، ومن الاستعادة بعد إعادة التثبيت. الإعداد الكامل موصوف في الاشتراكات داخل تطبيقات iOS.
ما الذي يجب التحقق منه في TestFlight قبل إرسال التطبيق إلى Apple؟
أعد تثبيت التطبيق من TestFlight، كما سيفعل المراجع، ومرّ على شاشات التعريف كاملة. ارفض كل إذن، واختبر الشراء والاستعادة، ثم جرّب وضع الطيران، وأصغر iPhone تدعمه وأكبرها. إذا كان التطبيق يتطلب تسجيل الدخول، جهّز حساب تجربة في ملاحظات المراجعة، مع تشغيل الواجهة الخلفية.