ما هو TestFlight؟ دليل شامل للمبتدئين، من أول دعوة إلى التثبيت بنجاح

محتويات المقال

تاريخ التحقق: 17 سبتمبر 2026. يركز هذا المقال على iPhone وiPad. قد تتغير واجهات Apple وقواعدها؛ لذا ارجع إلى الشروحات الرسمية المرتبطة في المقال وإلى الصفحة التي تظهر لك فعليًا.

أنشأت تطبيقًا وتريد أن يجربه أصدقاؤك أولًا، لكنك لست مستعدًا بعد لطرحه رسميًا في App Store. إرسال الشفرة المصدرية مباشرة لا يفي بالغرض، وحتى لو أرسلت حزمة تثبيت، فقد لا يتمكن الطرف الآخر من تثبيتها.

هذه هي المشكلة التي يعالجها TestFlight.

عندما يقول الناس «TF»، فإنهم يقصدون عادة اختصار TestFlight. وهي خدمة تقدمها Apple لتوزيع التطبيقات بغرض اختبارها: يرفع المطور نسخة تجريبية، ويدعو الآخرين إلى تثبيتها، ويجمع ملاحظاتهم، ثم يوزع إصدارًا محسّنًا. ما يثبته المختبرون تطبيق يعمل فعلًا على الجهاز، وليس صورًا للشاشة أو عرضًا توضيحيًا على الويب.[1][2]

تذكّر أولًا هذه النقاط الثلاث:

  • الاختبار الداخلي مخصص للأعضاء الذين يملكون الصلاحيات المناسبة في App Store Connect.
  • الاختبار الخارجي مناسب للأصدقاء والعملاء ومستخدمي المجتمعات، من دون منحهم صلاحيات الوصول إلى لوحة إدارة المطور.
  • يمكن اختبار كل بناء لمدة أقصاها 90 يومًا، تُحسب من يوم رفعه. واجتياز مراجعة الاختبار لا يعني طرح التطبيق رسميًا.[1][3]

إذا كنت قد تلقيت رابطًا من شخص آخر فقط، فيمكنك البدء بالقسم 9 «كيف يثبّت المختبر التطبيق». أما إذا أردت توزيع تطبيقك على الآخرين، فابدأ من البداية.

1. ما الفرق بين TestFlight وApp Store Connect وApp Store؟

تخيّل التطبيق الجديد متجرًا ما زال في مرحلة الافتتاح التجريبي: يساعدك TestFlight على دعوة الناس لتجربته، أما App Store فهو قناة الافتتاح الرسمي. وللافتتاح التجريبي أيضًا مدة محددة وقواعد، وليس بابًا خلفيًا لتجاوز المراجعة.

تتشابه الأسماء الثلاثة، لكن وظائفها مختلفة:

إذا كان الجدول عريضًا، يمكنك تمريره أفقيًا؛ ويمكن لمستخدمي لوحة المفاتيح نقل التركيز إليه ثم استخدام مفاتيح الأسهم.

الاسم من يستخدمه أساسًا الغرض منه
App Store Connect ناشرو التطبيقات وأعضاء الفريق المخولون إدارة معلومات التطبيق والأبنية المرفوعة والمختبرين والمجموعات والمراجعة
TestFlight يضبط الناشرون التوزيع ويثبّت المختبرون تطبيق الخدمة قبول الدعوات وتثبيت النسخ التجريبية وتحديثها وإرسال الملاحظات عن المشكلات
App Store التطبيقات المطروحة رسميًا ومستخدموها العثور على الإصدارات الرسمية وتنزيلها أو شراؤها

ما تنزّله من App Store هو أداة TestFlight نفسها، ثم تستخدمها لتثبيت التطبيقات التي دُعيت إلى اختبارها. ظهور تطبيق في TestFlight لا يعني أنه أصبح متاحًا في نتائج البحث في App Store.[1][3]

تستخدمها Apple لربط مراحل «توزيع إصدار — دعوة المختبرين — جمع المشكلات — تحديث الإصدار». ولا يتطلب TestFlight حاليًا أن يجمع المطور معرّفات أجهزة المختبرين واحدًا واحدًا، أو أن ينشئ ملف تعريف تثبيت منفصلًا لكل مختبر.[2]

لكنه لن يكتب التطبيق نيابة عنك، ولن يثبت أن جميع وظائفه تعمل بشكل صحيح، ولن يحوّل النسخة التجريبية تلقائيًا إلى إصدار رسمي. وحتى اجتياز مراجعة الاختبار لا يضمن خلو التطبيق من الثغرات أو عدم فقدان البيانات. عند اختبار تطبيق لا تعرفه، لا تخاطر بالنسخة الوحيدة من معلومات مهمة.

بعد تجهيز حزمة التطبيق ورفعها، تعالجها Apple وتُستكمل متطلبات الامتثال اللازمة، ثم تتجه إلى دعوات مجموعة داخلية أو إلى مراجعة مجموعة خارجية ودعواتها. وأخيرًا يقبل المختبرون الدعوة في TestFlight ويثبّتون التطبيق. أما الطرح الرسمي فله مسار منفصل.بعد تجهيز حزمة التطبيق ورفعها، تعالجها Apple وتُستكمل متطلبات الامتثال اللازمة، ثم تتجه إلى دعوات مجموعة داخلية أو إلى مراجعة مجموعة خارجية ودعواتها. وأخيرًا يقبل المختبرون الدعوة في TestFlight ويثبّتون التطبيق. أما الطرح الرسمي فله مسار منفصل.
رسم توضيحي للمسار، وليس لقطة من لوحة الإدارة. يحتاج أول بناء يُقدَّم للاختبار الخارجي إلى مراجعة كاملة، ولا يُضمن إعفاء الأبنية اللاحقة للإصدار نفسه من المراجعة. وبعد بدء الاختبار أو إرسال الإشعار حسب الحاجة، يظل على الطرف الآخر قبول الدعوة والتثبيت. تشترط Apple حاليًا وجود مجموعة داخلية قبل إنشاء مجموعة خارجية؛ وهذا لا يعني وجوب تثبيت جميع الأعضاء الداخليين للتطبيق أولًا، ولا يضمن مدة المعالجة أو المراجعة.

2. تاريخ TestFlight: لم تنشئه Apple من الصفر

تساعد معرفة التاريخ على فهم اختلاف الأسماء وأعداد المختبرين وطرق الاستخدام في الأدلة القديمة.

  • يناير 2011: إطلاق الخدمة للجمهور بوصفها خدمة مستقلة. كان اختبار تطبيقات iPhone غير المنشورة آنذاك يتطلب في كثير من الأحيان التعامل مع معرّفات الأجهزة وحزم التثبيت وملفات التعريف، ثم المزامنة عبر iTunes على الحاسوب. جعل TestFlight التثبيت اللاسلكي أسهل بكثير. والمقصود هنا هو الانتقال من الاختبار الخاص إلى إتاحة الخدمة للجمهور، وليس تاريخ تسجيل الشركة وتأسيسها.[H1]
  • مارس 2012: الإعلان عن استحواذ Burstly عليه. كان TestFlight لا يزال منتجًا تابعًا لطرف ثالث.[H2]
  • فبراير 2014: استحوذت Apple على Burstly. وانتقل TestFlight إلى Apple مع شركته الأم.[H3]
  • أكتوبر 2014: أعلنت Apple إتاحة دعوات الاختبار بالبريد الإلكتروني عبر iTunes Connect. كان iTunes Connect سلف App Store Connect الحالي، وكان يتيح حينها دعوة ما يصل إلى 1,000 شخص. انتبه إلى أن هذا رقم تاريخي.[H4]
  • يوليو 2017: ارتفع عدد المختبرين الخارجيين الممكن دعوتهم إلى 10,000.[H5]
  • سبتمبر 2018: أطلقت Apple روابط الدعوة العامة. أصبح بإمكان المطورين استقطاب المختبرين بمشاركة رابط، من دون جمع عناوين بريدهم الإلكتروني مسبقًا واحدًا واحدًا.[H6]

يدعم TestFlight اليوم منصات متعددة من Apple، بما فيها iPhone وiPad وMac وApple Watch وApple TV وApple Vision Pro. واستخدام iPhone مثالًا في هذا المقال لا يعني أنه لا يختبر إلا تطبيقات iPhone، ولا يعني أنه يستطيع توزيع تطبيقات Android.[2][3]

3. تعرّف أولًا إلى خمسة مصطلحات: النسخة التجريبية والإصدار والبناء والمجموعة والمراجعة

النسخة التجريبية (Beta): نسخة من التطبيق ما زالت قيد التحقق والتحسين، وقد تحتوي على مشكلات.

الإصدار (Version): مثل 1.0 أو 1.1، ويُستخدم لتمييز إصدار معين موجّه للمستخدمين.

البناء (Build): حزمة محددة من التطبيق ناتجة عن عملية تجهيز واحدة. مثلًا، تعني 1.0 (12) أن الإصدار هو 1.0 ورقم البناء هو 12. وبعد إصلاح مشكلة، يمكنك رفع 1.0 (13): يظل رقم الإصدار المعلن نفسه، لكن المحتوى الذي يُثبَّت أصبح مختلفًا.[7]

المجموعة (Group): تحدد من يمكنه الحصول على أي بناء. يمكنك إنشاء مجموعتين، مثل «الفريق» و«التجربة المبكرة»، ومنحهما الأبنية نفسها أو أبنية مختلفة. ويمكن أن تضم المجموعة أبنية متعددة، كما يمكن إسناد البناء العادي نفسه إلى مجموعات متعددة.[2][5][6]

مراجعة الاختبار (TestFlight App Review): مراجعة تجريها Apple للاختبار الخارجي، وهي ليست مراجعة طرح التطبيق رسميًا في App Store.[1][6]

تذكّر هذه العلاقة حتى لا تختلط عليك الأمور: التطبيق هو المشروع كله، والبناء حزمة محددة من المحتوى القابل للتثبيت داخله، والمجموعة تحدد من يمكنه التجربة. ينتمي رابط الدعوة العام إلى المجموعة الخارجية، ولا يرتبط ببناء واحد ثابت إلى الأبد.

4. ما الذي يحتاج الناشر والمختبر إلى تجهيزه قبل البدء؟

ما يحتاج الناشر إلى تجهيزه

  1. عضوية سارية في Apple Developer Program. السعر القياسي الحالي لدى Apple هو 99 دولارًا أمريكيًا سنويًا، وقد يختلف السعر باختلاف المنطقة، ويمكن لبعض المؤسسات المؤهلة طلب إعفاء من الرسوم. يتضمن اشتراك العضوية المعني خدمة TestFlight؛ وليست اشتراكًا منفصلًا يُشترى للمختبرين.[4]
  2. سجل صحيح للتطبيق في App Store Connect. يجب أن يتطابق معرّف التطبيق وتوقيعه والمحتوى المرفوع؛ فلا يمكنك إضافة حزمة تثبيت تطبيق آخر عشوائيًا.[7]
  3. صلاحيات حساب كافية من دون إفراط. يمكن لصاحب الحساب أو المسؤول أو مدير التطبيقات أو المطور رفع الأبنية، بينما تتطلب إدارة الاختبار الخارجي دور صاحب الحساب أو المسؤول أو مدير التطبيقات. القدرة على الرفع لا تعني القدرة على التحكم في جميع إعدادات الاختبار الخارجي.[6][7]
  4. معلومات الاختبار. تشمل وصف التطبيق وبريد الملاحظات وما تريد من المشاركين اختباره؛ وتتطلب المراجعة الخارجية أيضًا معلومات الاتصال وطريقة لتسجيل الدخول أو الوصول إلى الوظائف تتيح للمراجعين استخدامها فعلًا.[6][8]
  5. أجهزة ووقت للاختبار. نجاح الرفع لا يعني أن التثبيت والوظائف الأساسية قد خضعت للتحقق.

لا ترسل كلمة مرور Apple الخاصة بك إلى أصدقائك. لدعوة الآخرين إلى اختبار التطبيق، أرسل دعوة بدلًا من مشاركة حساب الإدارة.

ما يحتاج المختبر العادي إلى تجهيزه

تحتاج فقط إلى حساب Apple وجهاز متوافق وTestFlight ودعوة صالحة. لا تحتاج إلى الاشتراك المدفوع في برنامج المطورين، ولا إلى الدخول إلى لوحة إدارة المطور.[1][3]

حتى تاريخ التحقق من هذا المقال، تذكر صفحة مساعدة المختبرين لدى Apple أن متطلبات iPhone وiPad هي iOS 16 وiPadOS 16 أو أحدث. لكن قد يتطلب التطبيق نفسه نظامًا أحدث، ويمكن للدعوة العامة أيضًا أن تضع شروطًا للأجهزة وإصدارات النظام. القدرة على تثبيت TestFlight لا تعني القدرة على تثبيت كل تطبيق متاح داخله.[3][6]

إذا كنت تستخدم حساب Apple مُدارًا توفره جهة العمل أو الدراسة، فتحقق من الأهلية بعناية: توضح مساعدة Apple للاختبار الخارجي صراحة أن هذه الحسابات لا يمكن استخدامها لاختبار الأبنية؛ وتذكر مساعدة الاختبار الداخلي، على نحو منفصل، أن الحسابات المُدارة المنشأة ضمن نطاقات محجوزة لا يمكن استخدامها للاختبار. إذا واجهت هذه الحالة، فراجع صفحة المساعدة المعنية وسياسة مؤسستك، ولا تفترض أن رابط الدعوة معطل.[5][6]

5. ما الفرق الفعلي بين الاختبار الداخلي والخارجي؟

الفرق الأهم هو هوية المستخدم وصلاحياته في لوحة الإدارة، وليس مدى معرفتك بالشخص أو إرسال الدعوة بالبريد الإلكتروني من عدمه.

إذا كان الجدول عريضًا، يمكنك تمريره أفقيًا؛ ويمكن لمستخدمي لوحة المفاتيح نقل التركيز إليه ثم استخدام مفاتيح الأسهم.

السؤال الاختبار الداخلي الاختبار الخارجي
لمن هو مخصص؟ مستخدمو App Store Connect الذين يملكون حق الوصول إلى التطبيق وأدوارًا مؤهلة المدعوون للتجربة الذين لا يحتاجون إلى صلاحيات لوحة الإدارة
الحد الأقصى للعدد حتى 100 مختبر داخلي حتى 10,000 مختبر خارجي لكل تطبيق
هل يتطلب صلاحيات حساب في لوحة الإدارة؟ نعم لا
هل يمكن إرسال الدعوات بالبريد الإلكتروني؟ نعم نعم
هل يمكن مشاركة رابط دعوة عام؟ لا نعم
هل يتطلب مراجعة الاختبار الخارجي؟ لا يحتاج إلى هذه المراجعة، لكن يجب استيفاء متطلبات معالجة الرفع والامتثال يتطلب أول تقديم مراجعة كاملة، وقد لا تحتاج الأبنية اللاحقة للإصدار نفسه إلى مراجعة كاملة
الاستخدام المعتاد أنت وأعضاء التعاون الموثوق بهم الأصدقاء والعملاء والتجربة المحدودة أو الاختبار المفتوح

تشمل الأدوار المؤهلة للمختبرين الداخليين: صاحب الحساب (Account Holder)، والمسؤول (Admin)، ومدير التطبيقات (App Manager)، والمطور (Developer)، والتسويق (Marketing)، مع ضرورة امتلاك حق الوصول إلى التطبيق المعني.[2][5]

إذا دعوت صديقًا بشكل خاص عبر البريد الإلكتروني، فعادةً يظل الاختبار الخارجي هو الخيار المناسب. الخارجي لا يعني العام؛ يمكنك دعوة بضعة أشخاص فقط من دون تفعيل رابط عام.

لا تمنح المختبرين العاديين صلاحيات المسؤول لمجرد تجنب خطوة مراجعة. فهذه ليست زرًا للسماح بالتثبيت، بل صلاحيات إدارة حقيقية في لوحة التحكم.

وهناك قيد آخر يسهل إغفاله: يمكن لحساب المطور الفردي إضافة ما يصل إلى 50 مستخدمًا في App Store Connect. لذلك لا يعني حد «100 مختبر داخلي» في TestFlight أن كل حساب فردي يستطيع إنشاء 100 عضو إضافي في لوحة الإدارة.[9]

يدعم الاختبار الداخلي حتى 100 مستخدم مؤهل في لوحة الإدارة، ويدعم الاختبار الخارجي حتى 10000 مختبر لكل تطبيق من دون حساب إداري. ويدعم كلاهما الدعوات بالبريد الإلكتروني، بينما تقتصر الروابط العامة على المجموعات الخارجية.يدعم الاختبار الداخلي حتى 100 مستخدم مؤهل في لوحة الإدارة، ويدعم الاختبار الخارجي حتى 10000 مختبر لكل تطبيق من دون حساب إداري. ويدعم كلاهما الدعوات بالبريد الإلكتروني، بينما تقتصر الروابط العامة على المجموعات الخارجية.
توضيح لاختلاف الهوية: يحتاج الأعضاء الداخليون إلى أدوار مؤهلة وصلاحية الوصول إلى التطبيق، كما تخضع حسابات المطورين الفردية لحدود عدد مستخدمي لوحة الإدارة. أما الاختبار الخارجي فلا يتطلب منح صلاحيات إدارية، ويستلزم أول تقديم له مراجعة اختبار كاملة. ليس الفرق بين الداخلي والخارجي هو «إرسال بريد أم إرسال رابط».

6. كيف تضيف بناءً؟ ميّز أولًا بين «الرفع» و«الإضافة إلى مجموعة اختبار»

هاتان في الواقع عمليتان مختلفتان:

  • رفع البناء: إرسال حزمة التطبيق الجاهزة من أداة التطوير أو البناء إلى Apple.
  • إضافة بناء إلى مجموعة: اختيار بناء من الأبنية المتاحة التي سبق رفعها لتوزيعه على هذه المجموعة.

زر «إضافة أبنية (Add Builds)» في مجموعات الاختبار في App Store Connect لا ينشئ تطبيقًا تلقائيًا بمجرد سحب الشفرة المصدرية إليه، وليس زرًا لرفع ملف محلي.[5][6][7]

ضمن الإصدار 1.0 من التطبيق نفسه يوجد البناءان 5 و6؛ أُسند البناء 5 إلى المجموعة الداخلية، والبناءان 5 و6 إلى المجموعة الخارجية. ويشير رابط الدعوة العام إلى المجموعة الخارجية لا إلى بناء ثابت بعينه.ضمن الإصدار 1.0 من التطبيق نفسه يوجد البناءان 5 و6؛ أُسند البناء 5 إلى المجموعة الداخلية، والبناءان 5 و6 إلى المجموعة الخارجية. ويشير رابط الدعوة العام إلى المجموعة الخارجية لا إلى بناء ثابت بعينه.
توضيح للعلاقات باستخدام بيانات افتراضية. يمكن إسناد بناء واحد إلى مجموعات متعددة، كما يمكن أن تضم مجموعة واحدة أبنية متعددة؛ ولا يمثل رقم البناء عدد مرات التجميع الفعلية للمشروع. ينتمي الرابط العام إلى المجموعة الخارجية، وتظل الأبنية داخلها خاضعة لمتطلبات المراجعة والصلاحية وتوافق الأجهزة. يعرض الرسم أبنية عادية قابلة للتوزيع، ولا يتناول القيود الخاصة بـ Internal Only.

ماذا لو كانت هذه أول مرة توزّع فيها التطبيق ولم يكن له سجل في لوحة الإدارة؟

يدخل صاحب الحساب أو المسؤول أو مدير التطبيقات إلى التطبيقات (Apps) ← «+» ← تطبيق جديد (New App)، ثم يختار المنصة ويملأ المعلومات المطلوبة، مثل اسم التطبيق واللغة الأساسية ومعرّف التطبيق (Bundle ID) ورمز SKU المستخدم للإدارة الداخلية، ثم يحدد نطاق وصول الأعضاء وينشئ السجل. يجب أن يتطابق معرّف التطبيق مع المشروع؛ وإذا كنت لا تعرف أي معرّف ينبغي استخدامه، فاستوضح أولًا من الشخص المسؤول عن تجهيز الحزمة، ولا تختر عشوائيًا معرّف تطبيق آخر.

إذا تعذر الإنشاء، فتحقق من قبول صاحب الحساب أحدث الاتفاقيات. إنشاء سجل التطبيق لا يعني سوى إنشاء مدخل لإدارته في لوحة التحكم، ولا يعني أن التطبيق قد رُفع أو طُرح في المتجر.[15]

المسار الأساسي للرفع باستخدام Xcode

إذا كان لديك مشروع iOS بالفعل، يمكنك اتباع هذا الترتيب:

  1. تحقق من تطابق معرّف التطبيق وفريق التوقيع مع سجل التطبيق في App Store Connect.
  2. عيّن رقم بناء غير مكرر لهذا الرفع الجديد، مثل الانتقال من 1.0 (12) إلى 1.0 (13).
  3. اختر هدفًا للتوزيع على أجهزة فعلية، واضغط Product → Archive لإنشاء أرشيف، بدلًا من محاولة رفع نسخة المحاكي.
  4. في Window → Organizer → Archives، اختر الأرشيف واضغط Distribute App. للاستخدام المعتاد مع TestFlight والطرح الرسمي لاحقًا، اختر TestFlight & App Store؛ ويقابله توزيع App Store Connect في المسارات المخصصة. أكمل التوقيع والرفع وفق ما تعرضه الواجهة.[16]
  5. بعد الرفع، انتقل إلى App Store Connect ← التطبيقات (Apps) ← تطبيقك ← TestFlight للاطلاع عليه.
  6. انتظر معالجة Apple. إذا ظهرت أسئلة تتعلق بالامتثال لقواعد التصدير، فأجب عنها بصدق وفق التشفير الذي يستخدمه التطبيق فعلًا، ولا تختر دائمًا «لا يستخدم التشفير» لمجرد متابعة الخطوات.
  7. بعد اكتمال المعالجة وإتاحة البناء، أضفه إلى مجموعة اختبار داخلية أو خارجية.

يمكن استخدام أدوات مثل Xcode Cloud وTransporter أيضًا في الرفع. اختلاف الأداة لا يعني إمكانية تجاوز معالجة Apple أو الامتثال أو المجموعات أو المراجعة الخارجية.[7] وقد تتغير المتطلبات الدنيا لأدوات الرفع وSDK؛ لذا راجع متطلبات الرفع الحالية لدى Apple عند العمل. إصدار SDK المستخدم في البناء ليس هو الحد الأدنى لإصدار النظام الذي يسمح بتثبيت التطبيق.[18]

انتبه إلى خيار «للاختبار الداخلي فقط»

TestFlight Internal Only قيد ناتج عن طريقة الرفع: لا يمكن إضافة هذه الأبنية إلا إلى مجموعات داخلية، ولا يمكن استخدامها للاختبار الخارجي أو لتوزيع التطبيق على المستخدمين النهائيين. إذا احتجت لاحقًا إلى اختبار خارجي أو طرح رسمي، فعليك رفع بناء جديد بالطريقة المناسبة؛ ولا يكفي نقل البناء الأصلي إلى مجموعة أخرى.[5][6]

وفي المقابل، إضافة بناء عادي إلى مجموعة داخلية أولًا لا تحوّله تلقائيًا إلى بناء «للاختبار الداخلي فقط». لا تخلط بين «إتاحته حاليًا للأعضاء الداخليين» و«كون هذا الرفع مقيدًا بالاستخدام الداخلي وحده».

إذا كنت تطوّر التطبيق في AirBuild

يمكنك الاستعانة بـ AirBuild في تجهيز بناء قابل للتوزيع وتوقيعه ورفعه، وكذلك إعداد مجموعات الاختبار والدعوات. وضّح أولًا أنك تريد «توزيعه عبر TestFlight»، وهل هو لأعضاء الفريق أم لأصدقاء خارجيين؛ ثم اربط فريق مطوري Apple الذي يملك الصلاحيات اللازمة أو تأكد منه، وتحقق من تعليمات الاختبار وبريد الملاحظات وجهة اتصال المراجعة وما إذا كنت تريد إتاحة رابط عام.

تظل قواعد Apple المتعلقة بالمعالجة والمراجعة الخارجية والأعداد ومدة الصلاحية سارية. وعند التسليم، يجب توضيح الإصدار ورقم البناء المحددين، والمجموعة التي أصبح متاحًا لها، وما إذا كانت المراجعة الخارجية لا تزال معلقة. مساعدة AirBuild في إتمام المسار لا تعني تجاوز مراجعة Apple، ولا تعني أن التحقق في المحاكي قد غطّى جميع سلوكيات الأجهزة الفعلية.

هذا وصف لطريقة عمل AirBuild، وليس شرطًا من Apple لاستخدام أداة بعينها؛ كما أن عدم وجود Xcode محليًا على جهاز Mac لا يعني ضرورة تعلم جميع تفاصيل تجهيز الحزم حتى تتعاون مع الآخرين في توزيع التطبيق.

7. كيف تضيف المختبرين الداخليين؟ انتبه إلى وجود دعوتين

الفئة المناسبة: أنت، وأعضاء التعاون الذين يحتاجون فعلًا إلى الوصول إلى لوحة إدارة التطبيق.

الدعوة الأولى: ليصبح الطرف الآخر مستخدمًا مخولًا في لوحة الإدارة

يضيف المستخدمَ شخصٌ بدور صاحب الحساب (Account Holder) أو المسؤول (Admin) أو مدير التطبيقات (App Manager):

  1. انتقل إلى المستخدمون والوصول (Users and Access) ← الأشخاص (People).
  2. اضغط «+»، ثم أدخل الاسم والبريد الإلكتروني.
  3. امنح الدور المناسب؛ وإذا كان الدور يسمح بتقييد نطاق التطبيقات، فامنح الوصول إلى التطبيقات اللازمة فقط. لا تمنح دور المسؤول افتراضيًا. لا يمكن حصر وصول المسؤولين والمستخدمين ذوي دور الشؤون المالية، ولا المستخدمين الممنوحين صلاحيات إضافية لموارد مثل التقارير أو الشهادات، في تطبيق واحد؛ لذا اقرأ نطاق الصلاحيات بعناية قبل اختيارها.[9]
  4. أرسل الدعوة ليقبلها الطرف الآخر ويفعّل صلاحية الوصول إلى لوحة الإدارة.

توضح Apple حاليًا أن دعوة مستخدم لوحة الإدارة تنتهي صلاحيتها بعد 3 أيام، ويمكن إعادة إرسالها عند انتهائها. وهي ليست دعوة TestFlight التي تأتي لاحقًا، ولا علاقة لها بمهلة البناء البالغة 90 يومًا.[9]

إذا كان الشخص يملك أصلًا دورًا مؤهلًا وصلاحية الوصول إلى هذا التطبيق، فيمكنك تجاوز هذه الخطوة.

الدعوة الثانية: إضافة الأشخاص والبناء إلى مجموعة الاختبار الداخلي

  1. انتقل إلى التطبيقات ← تطبيقك ← TestFlight.
  2. اضغط «+» بجوار الاختبار الداخلي (Internal Testing)، وأنشئ مجموعة، مثل «الفريق».
  3. افتح المجموعة واختر دعوة مختبرين (Invite Testers)، أو اضغط «+» بجوار قائمة المختبرين.
  4. حدد أعضاء لوحة الإدارة المؤهلين وأضفهم إلى المجموعة.
  5. اضغط إضافة أبنية (Add Builds)، واختر بناءً اكتملت معالجته وأصبح قابلًا للاختبار.
  6. املأ ما ينبغي اختباره (What to Test)، ثم أضف البناء.
  7. اطلب من الطرف الآخر تثبيت TestFlight على جهازه، وقبول دعوة الاختبار، ثم تثبيت التطبيق.[5]

ليس وجود أسماء في القائمة وحده دليلًا على اكتمال العملية. يجب أن يكون هناك بناء متاح، وأن يقبل الطرف الآخر الدعوة ويثبّت التطبيق فعلًا.

لا تجد الشخص الذي تريد دعوته؟ تحقق أولًا من قبوله دعوة لوحة الإدارة، ومن أهلية دوره وامتلاكه صلاحية الوصول إلى التطبيق، بدلًا من إعادة رفع التطبيق فورًا.

يمكن تفعيل التوزيع التلقائي لبعض المجموعات الداخلية، لكن لا تفترض أن الأبنية من جميع المصادر ستُضاف تلقائيًا إلى كل المجموعات. وتؤكد مساعدة Apple الحالية خصوصًا أن الأبنية المنشأة عبر Xcode Cloud يجب إضافتها يدويًا إلى المجموعات في App Store Connect.[5]

8. كيف تضيف المختبرين الخارجيين؟

الفئة المناسبة: الأصدقاء والعملاء والمستخدمون الأوائل ومختبرو المجتمعات. وغالبًا ما يكون هذا الخيار الأنسب عند مشاركة التطبيق مع الآخرين للمرة الأولى.

جهّز أولًا مجموعة خارجية يمكن إضافة الأبنية إليها

ينفذ الخطوات صاحب الحساب أو المسؤول أو مدير التطبيقات:

  1. إذا لم تكن هناك مجموعة داخلية، فأنشئ واحدة أولًا. يضع دليل Apple الحالي للاختبار الخارجي «إنشاء مجموعة داخلية أولًا» شرطًا مسبقًا؛ وهذا لا يعني وجوب طرح التطبيق رسميًا أولًا، ولا أن يصبح المختبرون الخارجيون أعضاء داخليين قبل ذلك.[6]
  2. انتقل إلى التطبيقات ← تطبيقك ← TestFlight.
  3. في معلومات الاختبار (Test Information)، أدخل وصف النسخة التجريبية وبريد الملاحظات، واستكمل بيانات الاتصال المطلوبة للمراجعة. وإذا كان التطبيق يتطلب تسجيل الدخول، فوفر وسيلة وصول صالحة للمراجعين وتعليمات الاستخدام، وتأكد من إتاحة الخوادم المعنية. لا تستخدم البيانات الخاصة لمستخدمين حقيقيين بوصفها بيانات توضيحية.[6][8][14]
  4. اضغط «+» بجوار الاختبار الخارجي (External Testing)، وأنشئ مجموعة، مثل «التجربة المبكرة».
  5. ادخل إلى المجموعة، واضغط إضافة أبنية، واختر المنصة والإصدار والبناء المحدد.
  6. املأ ما ينبغي اختباره، مثل «أنشئ سجلًا، ثم اخرج وأعد فتح التطبيق، وتحقق من بقاء السجل»، بدلًا من الاكتفاء بعبارة «جرّب أي شيء».
  7. حدد خيار إشعار المختبرين تلقائيًا (Automatically notify testers) حسب الحاجة.
  8. بحسب الحالة الظاهرة في الصفحة، اختر الإرسال للمراجعة أو بدء الاختبار، وانتظر اكتمال أي مراجعة لازمة.
  9. ادعُ المختبرين بالبريد الإلكتروني أو الرابط العام أو بالطريقتين معًا.[6]

هل يعني اجتياز المراجعة أول مرة عدم الحاجة إليها لاحقًا؟

لا.

يحتاج أول بناء يُقدَّم للاختبار الخارجي إلى مراجعة كاملة؛ وقد لا تحتاج الأبنية اللاحقة للإصدار نفسه إلى مراجعة كاملة، لكن لا يمكن الوعد بإعفائها إلى الأبد. كما تشترط Apple تقديم التحديثات الكبيرة للنسخة التجريبية إلى مراجعة الاختبار قبل توزيعها.[6][14]

ليست للمراجعة مدة ثابتة. لا تَعِد الآخرين بأن التثبيت سيكون متاحًا حتمًا «خلال دقائق من الرفع» أو بأن الموافقة ستصدر حتمًا «خلال 24 ساعة».

إذا لم تفعّل الإشعار التلقائي عند إضافة البناء، فعليك تنفيذ إشعار المختبرين (Notify Testers) بعد الموافقة: في الجانب الأيسر من TestFlight، اختر المنصة والإصدار تحت الأبنية (Builds)، ثم اضغط خيار الإشعار في شريط حالة ذلك البناء. الموافقة على البناء وتوزيعه وتثبيته لدى الطرف الآخر ثلاث حالات مختلفة.[6]

الطريقة الأولى: الدعوة بالبريد الإلكتروني

افتح المجموعة الخارجية واضغط «+» بجوار المختبرون (Testers). يمكنك إدخال عناوين بريد مختبرين جدد، أو اختيار مختبرين موجودين، أو استيراد قائمة.[6]

ما يتلقاه الطرف الآخر هو دعوة للاختبار؛ ولا تمنحه هذه الدعوة صلاحيات إدارة في App Store Connect.

الطريقة الثانية: إنشاء رابط عام ومشاركته

افتح صفحة المختبرين في المجموعة الخارجية، واختر إنشاء رابط عام (Create Public Link):

  1. اختر مفتوح للجميع (Open to Anyone)، أو التصفية حسب المعايير (Filter by Criteria).
  2. اضبط الحد الأقصى لعدد المنضمين عبر الرابط حسب الحاجة، بين 1 و10,000، مع الالتزام بالحد الإجمالي للمختبرين الخارجيين لهذا التطبيق.
  3. إذا اخترت التصفية، فحدد شروط الأجهزة وإصدارات النظام المستهدفة.
  4. بعد التأكيد، انسخ الرابط الذي أُنشئ فعلًا وأرسله إلى أصدقائك، أو ضعه في مجتمع أو بريد إلكتروني أو موقع ويب.[6]

يبدأ الرابط عادةً بـ https://testflight.apple.com/join/…. انسخ الرابط الحقيقي الذي تنشئه Apple، ولا تؤلف الرمز الذي يأتي بعده، ولا تستخدم عنوان صفحة الإدارة في App Store Connect بوصفه رابط تثبيت.

يمكن لرمز QR أن يحمل الرابط نفسه، لكنه ليس طريقة توزيع مختلفة، ولا يتيح تجاوز المراجعة.

تحقق من أربعة أمور قبل مشاركة الرابط

  • تحتوي المجموعة الخارجية المستهدفة على البناء الذي تريد مشاركته.
  • اجتاز البناء المراجعة اللازمة، وبدأ توزيعه بالفعل.
  • لم تنتهِ صلاحية البناء، وهو متوافق مع الجهاز المستهدف.
  • الرابط مفعّل، ولا تزال هناك أماكن متاحة، ولا تمنع شروط التصفية المستخدمين المستهدفين من الانضمام.[3][6]

إمكانية فتح الرابط لا تعني بالضرورة إمكانية تثبيت الإصدار الجديد. كما أن بقاء بناء قديم متاحًا لا يعني توزيع أحدث بناء على هذه المجموعة.

يمكن إعادة مشاركة الرابط العام، فهو ليس قائمة سرية. إذا أردت دعوة عدد محدد من الأشخاص فقط، ففضّل الدعوة بالبريد الإلكتروني، واضبط التحكم في الوصول ضمن صلاحيات حسابات التطبيق نفسه.

لا تظهر أسماء المنضمين عبر الرابط العام وعناوين بريدهم الإلكتروني افتراضيًا في قائمة مختبري TestFlight، لكن تبقى معلومات مثل تاريخ التثبيت وجلسات الاستخدام والأعطال مرئية. وقد يقدم المختبر بريده الإلكتروني أيضًا عند إرسال ملاحظات من تلقاء نفسه. وهذا لا يعني إخفاء الهوية بالكامل عن Apple أو عن نظام تسجيل الدخول الخاص بالتطبيق.[3][6]

عند تحديث البناء لاحقًا، يمكنك عادةً مواصلة استخدام رابط المجموعة الخارجية نفسه، ولا يلزم إعادة استقطاب الجميع كل مرة. ويمكنك أيضًا تعديل شروط التصفية أو حد العدد أو تعطيل الرابط من إدارة (Manage). تعطيل الرابط يوقف باب الانضمام الجديد؛ ولا يعني حذف التطبيقات المثبتة بالفعل أو إلغاء حسابات التطبيق أو مسح بيانات الخادم.[6]

9. كيف يثبّت المختبر التطبيق ويحدّثه ويرسل الملاحظات وينسحب؟

بعد تلقي الدعوة، نفّذ الخطوات على جهاز iPhone أو iPad المخصص للاختبار:

  1. ثبّت تطبيق TestFlight الرسمي من Apple عبر App Store.
  2. افتح رسالة الدعوة أو الرابط العام.
  3. اتبع تعليمات الصفحة للانتقال إلى TestFlight، واختر قبول (Accept)، ثم اضغط تثبيت (Install).
  4. اقرأ ما ينبغي اختباره، ثم ابدأ الاستخدام.
  5. عند توفر بناء جديد، حدّثه في TestFlight، ويمكنك أيضًا تفعيل التحديثات التلقائية. وقد يرى المختبرون الحاليون خيار تحديث (Update) أو فتح (Open) مباشرة.[3]

لا يحتاج الاختبار الخارجي العادي إلى كلمة مرور المطور أو دور في لوحة الإدارة، ولا يتطلب منك إنشاء حساب خاص للبيئة التجريبية المعزولة مسبقًا.

إذا كان الإصدار الرسمي موجودًا على الهاتف، فهل سيُثبَّت التطبيق مرتين؟

عادةً لا. تحل النسخة التجريبية من TestFlight للتطبيق نفسه محل إصدار App Store على الجهاز.[3]

لذلك انسخ بياناتك المهمة احتياطيًا أو صدّرها أولًا. قد تغيّر النسخة التجريبية تنسيق البيانات، وقد لا يستطيع إصدار أقدم قراءة ما كتبه الإصدار الأحدث؛ فلا تفترض أن التبديل بين الإصدارات عملية مضمونة بلا فقدان للبيانات.

إذا كان المطور ما زال يتيح أبنية أخرى سارية الصلاحية، فيمكنك الاختيار عبر الأبنية السابقة (Previous Builds). وهذا ليس مستودع تنزيل يحتفظ بكل الإصدارات التاريخية إلى الأبد.[3]

كيف ترسل ملاحظات يسهل على المطور فهمها؟

افتح صفحة التطبيق في TestFlight واضغط إرسال ملاحظات النسخة التجريبية (Send Beta Feedback). وفي الأنظمة المدعومة، يمكنك أيضًا التقاط صورة للشاشة من داخل التطبيق التجريبي ثم إرسال الملاحظات؛ وقد تظهر بعد التعطل مطالبة بمشاركة معلومات إضافية.[3]

بدلًا من عبارة «لا يعمل»، تكون الصياغة التالية أكثر فائدة:

أستخدم [طراز الجهاز] و[إصدار النظام]، وإصدار التطبيق هو [الإصدار ورقم البناء]. فتحت الإعدادات وغيّرت اللغة ثم عدت إلى الصفحة الرئيسية. توقعت أن تتغير النصوص معها، لكن الصفحة الرئيسية بقيت باللغة السابقة. كررت المحاولة مرتين وظهرت المشكلة في كلتيهما، وأرفقت صورة للشاشة.

لا تُضمّن كلمات مرور أو معلومات دفع أو بيانات خاصة بالآخرين في الصور. تُتاح الملاحظات المرسلة عبر TestFlight لـ Apple أيضًا؛ أما وسيلة الملاحظات التي يوفرها التطبيق نفسه فهي قناة منفصلة.[3]

ماذا تفعل إذا لم تعد تريد الاختبار؟

ادخل إلى صفحة معلومات التطبيق في TestFlight، واختر إيقاف الاختبار (Stop Testing). وإذا كان هناك إصدار رسمي، فيمكنك تنزيله أو شراؤه من App Store. أما التطبيق الذي لا يملك سوى نسخة تجريبية ولم يُطرح رسميًا بعد، فقد لا يتوفر له إصدار رسمي يمكنك الانتقال إليه.[3]

إيقاف الاختبار لا يعني حذف الحساب الذي سجلته في التطبيق؛ وتُدار الحسابات والبيانات السحابية وفق قواعد التطبيق نفسه.

10. هل تُخصم أموال حقيقية عند الدفع داخل TestFlight؟

المعاملات التجريبية التي تُجرى عبر نظام الشراء داخل التطبيق من Apple في التطبيقات المثبتة من TestFlight تستخدم البيئة التجريبية المعزولة، ولا تخصم أموالًا حقيقية. ويشمل ذلك أيضًا اختبار الاشتراكات عبر StoreKit.[3][10]

يمكن فهم «البيئة التجريبية المعزولة» بوصفها بيئة للتدرب على مسار الشراء: يستطيع التطبيق قراءة معلومات المنتجات وبدء عملية شراء تجريبية واستعادة المشتريات ومعالجة إشعارات المعاملات، لكن ذلك لا يولّد إيرادات مبيعات حقيقية.[10]

أكثر ما يسبب الالتباس هنا هو نطاق هذه البيئة.

عدم خصم الأموال لا يعني أن الإصدار الرسمي مجاني إلى الأبد

توضح Apple أن المشتريات داخل التطبيق خلال الاختبار لا تنتقل كسجل مشتريات إلى الإصدار الرسمي في App Store. لا تَعِد المختبرين بأن «ضغطة واحدة الآن تمنحك عضوية دائمة بعد الإطلاق الرسمي».[3]

إذا قرر المطور منح مزايا لحسابات التطبيق بشكل منفصل، فهذا ترتيب تجاري يخصه، وليس قاعدة يطبقها TestFlight تلقائيًا.

توقيت الاشتراك التجريبي ليس توقيت الفوترة الحقيقية

بالنسبة للاشتراكات ذات التجديد التلقائي، تذكر إرشادات Apple الحالية لمختبري TestFlight ما يلي: مهما كانت مدة الاشتراك الأصلية، يُجدَّد الاشتراك في الاختبار يوميًا، بحد أقصى 6 تجديدات خلال أسبوع. وتتيح أدوات التحكم المتقدمة التي تستخدم حسابًا للبيئة التجريبية المعزولة تعديل سرعة التجديد أيضًا؛ فلا تطبق مباشرةً قيمًا مثل «5 دقائق» أو «12 مرة» من سيناريوهات أخرى لتلك البيئة على اختبار TestFlight العادي.[3][10]

تُستخدم قواعد التسريع هذه لاختبار التجديد وانتهاء الصلاحية، ولا تمثل دورة فوترة المستخدمين الفعليين.

مسار الشراء لدى Apple وحده يدخل البيئة التجريبية المعزولة تلقائيًا، وليس التطبيق كله

قد يظل تطبيق TestFlight قادرًا على:

  • الاتصال بخادم الإنتاج وتعديل سجلات حقيقية؛
  • إرسال رسائل بريد إلكتروني أو رسائل أخرى فعلية؛
  • حذف حسابات أو بيانات حقيقية؛
  • فتح صفحة ويب تتلقى مدفوعات حقيقية؛
  • استخدام وسائل دفع غير نظام الشراء داخل التطبيق من Apple.

الدفع عبر الويب وApple Pay والشراء داخل التطبيق عبر StoreKit ليست الشيء نفسه. لا تفترض أن الدفع عبر صفحة ويب أو تنفيذ معاملات فعلية لن يكلف مالًا حقيقيًا لمجرد أن التطبيق جاء من TestFlight. يجب على المطور إعداد بيانات الاختبار والخوادم وبيئات الدفع الأخرى بشكل منفصل.[10]؛ توضيح حدود أنظمة التطبيق

داخل الخط المتقطع تقع معاملات الشراء داخل التطبيق من Apple في البيئة التجريبية المعزولة: لا تُخصم أموال حقيقية ولا تتحول تلقائيًا إلى حقوق شراء في الإصدار الرسمي. أما خوادم التطبيق والويب ووسائل الدفع الأخرى والبريد وعمليات البيانات فلا تدخل هذه البيئة تلقائيًا.داخل الخط المتقطع تقع معاملات الشراء داخل التطبيق من Apple في البيئة التجريبية المعزولة: لا تُخصم أموال حقيقية ولا تتحول تلقائيًا إلى حقوق شراء في الإصدار الرسمي. أما خوادم التطبيق والويب ووسائل الدفع الأخرى والبريد وعمليات البيانات فلا تدخل هذه البيئة تلقائيًا.
توضيح للنطاق: تشمل البيئة التجريبية المعزولة معاملات اختبار الشراء داخل التطبيق من Apple، ولا تشمل تلقائيًا الخوادم أو الويب أو قنوات الدفع الأخرى أو العمليات الفعلية. ظهور سعر على الشاشة لا يعني خصم أموال حقيقية؛ كما أن نجاح معاملة تجريبية لا يثبت صحة الشراء الفعلي ومعالجة حقوق الاستخدام في الإصدار الرسمي.

هل يجب على كل مختبر إنشاء حساب للبيئة التجريبية المعزولة؟

لا. يمكن استخدام حساب Apple المعتاد للتثبيت واختبار الشراء العاديين في TestFlight.[10]

فقط عندما يحتاج المطور إلى أدوات تحكم مثل مسح سجل المشتريات أو تعديل إعدادات الاختبار المتقدمة، يلزمه إعداد Sandbox Apple Account وفق مستندات Apple. وقد تتضمن الخطوات المتقدمة تسجيل الخروج من «الوسائط والمشتريات»، ما يؤثر في الوصول إلى المحتوى المشترى على الجهاز؛ وهذا ليس شرطًا يجب أن ينفذه المختبر العادي قبل التثبيت، ولا ينبغي خصوصًا أن تطلب من الناس تسجيل الخروج من iCloud على الجهاز كله بلا داعٍ. وتوصي Apple بالنظر في استخدام جهاز مخصص للاختبار.[10]

إذا ظهرت عملية الشراء ناجحة لكن التطبيق لم يفتح الميزة، فلا يزال عليك إبلاغ المطور. يجب تنفيذ إعداد المنتجات والتحقق من المعاملات ومنح حقوق الاستخدام واستعادة المشتريات ومعالجة التجديد بشكل صحيح. نجاح الشراء في البيئة التجريبية المعزولة لا يثبت صحة الدفع الفعلي أو وصول الإيرادات أو جميع آليات الاشتراك.

11. ما حدود TestFlight؟

إذا كان الجدول عريضًا، يمكنك تمريره أفقيًا؛ ويمكن لمستخدمي لوحة المفاتيح نقل التركيز إليه ثم استخدام مفاتيح الأسهم.

القاعدة ما تعنيه لك المصدر
حتى 100 مختبر داخلي يجب أن يملكوا أدوارًا مؤهلة في لوحة الإدارة وصلاحية الوصول إلى التطبيق؛ وتسري أيضًا قواعد عدد مستخدمي الحساب [2][5][9]
حتى 10,000 مختبر خارجي لكل تطبيق إنشاء مجموعات إضافية لا يضاعف العدد الإجمالي المسموح به للتطبيق [6]
يمكن ضبط عدد المنضمين عبر الرابط العام بين 1 و10,000 يمكنك استقطاب عدد أصغر، لكن لا يمكنك تجاوز الحد الإجمالي للتطبيق [6]
حتى 90 يومًا لكل بناء تُحسب من الرفع، لا من الموافقة أو إرسال الدعوة أو التثبيت [3]
حتى 30 جهازًا لكل مختبر يظل توافق الجهاز والتطبيق وشروط الدعوة مطلوبًا [2][3]
مشاركة ما يصل إلى 100 بناء يمكن اختبار أبنية متعددة بالتوازي؛ ولا يعني ذلك إمكانية تقديم 100 بناء للمراجعة في الوقت نفسه [2]
تقديم ما يصل إلى 6 أبنية إلى TestFlight App Review خلال 24 ساعة هذا حد تقديم الأبنية لمراجعة الاختبار، وليس حدًا يقيّد الرفع بـ 6 مرات يوميًا [6]
بناء واحد فقط من كل إصدار قيد مراجعة الاختبار في الوقت نفسه بعد الموافقة عليه، يمكنك تقديم أبنية أخرى للإصدار نفسه [6]
الرفع للاختبار الداخلي فقط لا يمكنك استخدام البناء المقيد نفسه للاختبار الخارجي أو الطرح الرسمي [5][6]

هل تفيد إعادة إرسال الدعوة بعد انتهاء 90 يومًا؟

لا. المهلة تخص البناء، لا مختبرًا معينًا. من ينضم متأخرًا لا يحصل على 90 يومًا كاملة من جديد. وبعد انتهاء الصلاحية، لا يمكن مواصلة فتح النسخة التجريبية، ويحتاج المطور إلى توفير بناء جديد ساري الصلاحية.[3]

إذا أردت استمرار الاختبار بلا انقطاع، فارفع بناءً جديدًا ووزّعه قبل انتهاء صلاحية القديم، وذكّر الجميع بالتحديث. للبناء الجديد مهلة خاصة به، ولا يمدد عمر البناء القديم.

هل يمكن الاعتماد على TestFlight طويلًا لبيع التطبيق أو مقاعد الاختبار؟

لا تتعامل معه بوصفه قناة مبيعات تلتف على الطرح الرسمي.

تشترط الفقرة 2.2 من إرشادات مراجعة Apple أن تلتزم التطبيقات التجريبية بقواعد المراجعة وأن تستهدف الطرح العام؛ كما تحظر توزيع الاختبارات عبر TestFlight مقابل أي شكل من أشكال العوض، بما في ذلك مكافآت التمويل الجماعي. وببساطة، لا يمكنك اعتبار «ادفع للانضمام إلى المجموعة والحصول على النسخة التجريبية» طريقة عادية لتوزيع TestFlight.[14]

12. مشكلات شائعة: لماذا لا يستطيع الآخرون التثبيت؟

إذا كان الجدول عريضًا، يمكنك تمريره أفقيًا؛ ويمكن لمستخدمي لوحة المفاتيح نقل التركيز إليه ثم استخدام مفاتيح الأسهم.

الحالة ما الذي ينبغي التحقق منه أولًا؟
نجح الرفع لكن البناء لا يظهر في لوحة الإدارة هل ما زالت Apple تعالجه؟ هل ورد بريد يفيد بفشل المعالجة؟ هل تنظر إلى التطبيق والإصدار الصحيحين؟
تظهر حالة محتوى تثبيت غير صالح (Invalid Binary) راجع خطأ الرفع المحدد الذي أرسلته Apple، ثم أصلحه وقدّم بناءً جديدًا
تظهر حالة معلومات امتثال ناقصة (Missing Compliance) استكمل معلومات الامتثال للتصدير وفق حالة التطبيق الفعلية؛ فالأمر ليس مجرد انتظار إضافي للمراجعة
لا يظهر شخص في قائمة الدعوة الداخلية هل قبل دعوة لوحة الإدارة؟ هل دوره مؤهل؟ هل يملك صلاحية الوصول إلى التطبيق؟
لا يمكن إضافة البناء إلى مجموعة خارجية هل اكتملت المعالجة والامتثال؟ هل اخترت بالخطأ الرفع للاختبار الداخلي فقط؟
الحالة في انتظار المراجعة أو قيد مراجعة الاختبار لم يحصل الاختبار الخارجي بعد على الموافقة اللازمة؛ وإتاحة البناء داخليًا لا تغني عن هذه الخطوة
اجتاز البناء المراجعة لكن لم يتلقَّ أحد التحديث هل أُضيف إلى المجموعة المستهدفة؟ هل ما زال يلزم إشعار المختبرين يدويًا؟
لم يعد الرابط يقبل مختبرين هل عُطّل؟ هل امتلأت أماكن الرابط أو العدد الإجمالي للتطبيق؟ هل يوجد بناء متاح؟
يمكن فتح الرابط لكن لا يوجد إصدار قابل للتثبيت تحقق من النظام والجهاز وشروط التصفية وتاريخ الانتهاء والبناء الموجود فعلًا في المجموعة
أُرسلت الدعوة لكن لا توجد بيانات استخدام ميّز بين من دُعي ومن قبل الدعوة ومن ثبّت التطبيق؛ وقد يتأخر ظهور مؤشرات الاختبار بعد التثبيت حتى 24 ساعة، فلا تستنتج فورًا أن التثبيت فشل لدى الطرف الآخر [17]
لا يرى الطرف الآخر الميزة الجديدة تحقق من الإصدار المثبت لديه ورقم البناء بين القوسين، ولا تكتفِ باسم التطبيق
بعد قبول الدعوة، ما زال التطبيق يطلب تسجيل الدخول أهلية التثبيت ليست حسابًا في التطبيق؛ وعلى المطور توفير تعليمات التسجيل أو الدخول بشكل منفصل
يتوقف التطبيق فجأة عن الفتح بعد مدة تحقق أولًا من الأيام المتبقية وحالة انتهاء الصلاحية في TestFlight، ثم تواصل مع المطور
نجح الشراء التجريبي لكن لا توجد عضوية في الإصدار الرسمي لا تتحول المشتريات التجريبية تلقائيًا إلى حقوق شراء فعلية، فلا تستنتج من ذلك فقدان عملية دفع حقيقية

هذه اتجاهات لاستكشاف المشكلات، وليست تشخيصًا مؤكدًا للسبب الجذري بمجرد رؤية رسالة خطأ.[3][5][6][11]

تنبيه مهم: حتى حالة «قيد الاختبار (Testing)» الخضراء في لوحة الإدارة قد تعني فقط أن مجموعة داخلية تستخدم البناء. لمعرفة ما إذا كان المستخدمون الخارجيون يستطيعون التثبيت، يجب التحقق من المجموعة الخارجية المستهدفة والبناء المحدد وحالة إتاحته لتلك المجموعة.[11]

«جاهز للتقديم (Ready to Submit)» و«في انتظار المراجعة (Waiting for Review)» و«قيد مراجعة النسخة التجريبية (In Beta Review)» و«جاهز للاختبار (Ready to Test)» مراحل مختلفة أيضًا. وعلى وجه الخصوص، قد تتطلب حالة الجاهزية للاختبار إضافة مختبرين أو إكمال الإشعار اليدوي.[11]

13. أين يطّلع المطور على الملاحظات، وكيف يواصل توزيع الإصدارات الجديدة؟

انتقل إلى التطبيقات ← تطبيقك ← TestFlight ← الملاحظات (Feedback) للاطلاع على صور الشاشة (Screenshots) والأعطال (Crashes)، والتصفية بحسب الإصدار أو الجهاز أو غير ذلك. وتتأثر إمكانية إرسال الملاحظات من داخل التطبيق بإعدادات المجموعة أيضًا.[12]

عالج أولًا المشكلات التي يمكن إعادة إنتاجها، ثم ابدأ الجولة التالية:

  1. أصلح المشكلة، وجهّز الحزمة وارفعها برقم بناء جديد.
  2. انتظر المعالجة وأكمل متطلبات الامتثال اللازمة.
  3. أضف البناء الجديد إلى المجموعة المستهدفة وأكمل المراجعة الخارجية اللازمة.
  4. حدّث ما ينبغي اختباره، وأشعر المختبرين وفق الإعدادات.
  5. اطلب من أعضاء المجموعة المستهدفة تأكيد الإصدار والبناء المثبتين فعلًا، وإعادة تجربة المشكلة السابقة.

سجلات الرفع وقوائم المجموعات وموافقة المراجعة مهمة كلها، لكن يجب في النهاية التأكد من أن الأشخاص المستهدفين ثبّتوا البناء المستهدف فعلًا.

إرسال صورة من اختبار داخلي وحدها لا يثبت أن جميع المستخدمين الخارجيين يمكنهم التثبيت أيضًا؛ وعمل التطبيق في المحاكي لا يغني عن نتيجة تثبيته على الجهاز.

14. كيف تنهي الاختبار أو تطرح التطبيق رسميًا؟

حدد أولًا ما الذي تريد إيقافه:

  • التوقف عن استقطاب مستخدمين جدد: عطّل رابط الدعوة العام للمجموعة الخارجية.
  • تغيير من يتلقى أي بناء: أدِر المختبرين والمجموعات وإسناد الأبنية.
  • إيقاف عمليات التثبيت الجديدة لبناء معين: ادخل إلى تفاصيل البناء واختر إنهاء صلاحية البناء (Expire Build). لا تفهم هذا على أنه حذف التطبيق عن بُعد من جميع الهواتف أو مسح الحسابات السحابية.[6][13]
  • الطرح الرسمي: جهّز المعلومات المطلوبة للإصدار الرسمي في App Store، واختر بناءً مؤهلًا، وقدّمه بشكل منفصل للمراجعة الرسمية.[1][2]

يمكن اختيار بناء مؤهل رُفع بالفعل عبر TestFlight بالطريقة العادية لتقديمه للمراجعة الرسمية؛ فليس من الضروري إعادة تجهيز الحزمة لمجرد الرغبة في الطرح. لكن إذا تغيّرت الشفرة فعلًا، فعليك رفع بناء جديد، كما لا يمكن استخدام الرفع «للاختبار الداخلي فقط» في الطرح الرسمي.[2][5]

اجتياز مراجعة TestFlight لا ينشر التطبيق تلقائيًا في App Store. وبالمقابل، طرح الإصدار الرسمي لا ينهي تلقائيًا النسخ التجريبية التي لا تزال سارية الصلاحية؛ بل يجب التخطيط لإنهاء الاختبار وانتقال المستخدمين كلٍّ على حدة.[1]

15. رسالة جاهزة يمكنك إرسالها إلى أول مجموعة من المختبرين

أود أن تساعدني في تجربة نسخة مبكرة من [اسم التطبيق].

ثبّت أولًا تطبيق TestFlight الرسمي من Apple عبر App Store، ثم افتح [رابط الدعوة الفعلي] على iPhone، واقبل الدعوة وثبّت التطبيق.

أود منك التركيز في هذه الجولة على: [مهمة أو مهمتين محددتين]. الأجهزة والأنظمة المدعومة: [المتطلبات الفعلية].

هذه نسخة تجريبية وقد تحتوي على مشكلات؛ لذا انسخ معلوماتك المهمة احتياطيًا أولًا. وإذا واجهت أمرًا غير طبيعي، فيمكنك استخدام «إرسال ملاحظات النسخة التجريبية» في TestFlight لإخباري بما فعلته وما توقعته وما حدث فعلًا، ويُفضّل إرفاق صورة للشاشة ورقم الإصدار.

استبدل ما بين الأقواس المربعة بالمعلومات الفعلية. أرسل الرسالة بعد التأكد من إمكانية تثبيت البناء الموجود في المجموعة الخارجية المستهدفة فعلًا؛ ولا ترسل إلى الجميع رابطًا ما زال ينتظر المراجعة وتصفه بأنه جاهز للاستخدام.

قبل التوزيع، راجع هذه النقاط العشر أخيرًا

  • اخترت الاختبار الداخلي أو الخارجي بناءً على صلاحيات الحساب، ولم أمنح أحدًا صلاحيات زائدة لتسهيل الأمور.
  • اكتملت معالجة البناء المستهدف، ولا توجد عوائق توزيع لم تُحل.
  • تضم المجموعة المستهدفة هذا البناء فعلًا.
  • اجتاز البناء المراجعة الخارجية اللازمة، وأُرسلت الإشعارات المطلوبة.
  • تحققت من طريقة الدعوة المستخدمة: أُرسلت دعوات البريد إلى الأشخاص الصحيحين؛ وإذا استخدمت رابطًا عامًا، فهو مفعّل وفيه أماكن متاحة. وتستوفي الأجهزة والأنظمة المستهدفة المتطلبات.
  • وصف الاختبار وبريد الملاحظات وما ينبغي اختباره معلومات صحيحة ومفيدة.
  • يعرف المختبرون أنها نسخة تجريبية، ويعرفون أنها قد تحل محل الإصدار الرسمي.
  • ميّزت بين الشراء في البيئة التجريبية المعزولة وبين الخوادم الفعلية والدفع عبر الويب والعمليات الحقيقية.
  • راجعت موعد انتهاء صلاحية البناء وخططت للتحديثات اللاحقة.
  • أكد شخص من الفئة المستهدفة أنه ثبّت البناء المستهدف فعلًا، لا أنه فتح صفحة الدعوة فقط.

عند مشاركة تطبيقك للمرة الأولى، ليست نقطة النهاية الحقيقية هي «اكتمل الرفع»، بل أن يثبّت الأشخاص المناسبون الإصدار الصحيح، ويعرفوا ما ينبغي اختباره وكيف يبلغونك بالمشكلات.

المصادر وقراءات إضافية

جرى التحقق من المصادر التالية في 17 سبتمبر 2026. تستند المحطات التاريخية إلى تقارير معاصرة لها أو إعلانات Apple في ذلك الوقت، وتستند القواعد الحالية أساسًا إلى مساعدة Apple الرسمية. وقد تختلف واجهات الاستخدام بحسب اللغة والإصدار.

[1] Apple: نظرة عامة على TestFlight. https://developer.apple.com/help/app-store-connect/test-a-beta-version/testflight-overview/ ↑

[2] Apple: التعريف بمنتج TestFlight. https://developer.apple.com/testflight/ ↑

[3] Apple: مساعدة مختبري TestFlight، بما يشمل التثبيت ومهلة 90 يومًا والاشتراكات والخصوصية والانسحاب. https://testflight.apple.com/ ↑

[4] Apple: الانضمام إلى Developer Program والرسوم. https://developer.apple.com/programs/enroll/ ↑

[5] Apple: إضافة مختبرين داخليين. https://developer.apple.com/help/app-store-connect/test-a-beta-version/add-internal-testers/ ↑

[6] Apple: دعوة مختبرين خارجيين. https://developer.apple.com/help/app-store-connect/test-a-beta-version/invite-external-testers/ ↑

[7] Apple: رفع الأبنية. https://developer.apple.com/help/app-store-connect/manage-builds/upload-builds/ ↑

[8] Apple: تقديم معلومات الاختبار. https://developer.apple.com/help/app-store-connect/test-a-beta-version/provide-test-information/ ↑

[9] Apple: إضافة المستخدمين وتعديلهم. https://developer.apple.com/help/app-store-connect/manage-your-team/add-and-edit-users/ ↑

[10] Apple: اختبار عمليات الشراء داخل التطبيق باستخدام البيئة التجريبية المعزولة. https://developer.apple.com/documentation/storekit/testing-in-app-purchases-with-sandbox ↑

[11] Apple: حالات أبنية التطبيق. https://developer.apple.com/help/app-store-connect/reference/app-uploads/app-build-statuses/ ↑

[12] Apple: عرض ملاحظات المختبرين. https://developer.apple.com/help/app-store-connect/test-a-beta-version/view-tester-feedback/ ↑

[13] Apple: إيقاف اختبار بناء. https://developer.apple.com/help/app-store-connect/test-a-beta-version/stop-testing-a-build/ ↑

[14] Apple: إرشادات مراجعة التطبيقات، ولا سيما الفقرة 2.2 الخاصة باختبار النسخ التجريبية. https://developer.apple.com/app-store/review/guidelines/#beta-testing ↑

[15] Apple: إضافة تطبيق جديد. https://developer.apple.com/help/app-store-connect/create-an-app-record/add-a-new-app/ ↑

[16] Apple: توزيع التطبيق للاختبار التجريبي والطرح. https://developer.apple.com/documentation/xcode/distributing-your-app-for-beta-testing-and-releases ↑

[17] Apple: عرض معلومات المختبرين وإدارتها. https://developer.apple.com/help/app-store-connect/test-a-beta-version/view-and-manage-tester-information/ ↑

[18] Apple: المتطلبات القادمة، بما يشمل متطلبات SDK والرفع الحالية. https://developer.apple.com/news/upcoming-requirements/ ↑

مصادر تاريخية:

[H1] Macworld، 2011-01-21، TestFlight يجعل اختبار تطبيقات iOS أسهل بكثير. https://www.macworld.com/article/210218/testflight.html ↑

[H2] MacStories، 2012-03-05، استحواذ Burstly على TestFlight. https://www.macstories.net/news/testflight-acquired-by-burstly-launches-testflight-live/ ↑

[H3] The Verge، 2014-02-21، Apple تشتري الشركة المطورة لمنصة اختبار iOS المسماة TestFlight. https://www.theverge.com/apps/2014/2/21/5434060/apple-buys-maker-of-the-ios-testing-platform-testflight ↑

[H4] Apple، 2014-10-23، الاختبار التجريبي عبر TestFlight للجميع. https://developer.apple.com/news/?id=10232014a ↑

[H5] Apple، 2017-07-31، توسيع حدود عدد المختبرين في TestFlight. https://developer.apple.com/news/?id=07312017a ↑

[H6] Apple، 2018-09-26، دعوة المختبرين باستخدام رابط عام. https://developer.apple.com/news/?id=09262018a ↑