# Missing Compliance في TestFlight: كيف تصلحها نهائيًا

> Missing Compliance يعني أن Apple تنتظر إقرارك بشأن التشفير. افتح البناء في App Store Connect، ثم اضبط المفتاح كي لا تراها مجددًا.

الصفحة الأصلية: [Missing Compliance في TestFlight: كيف تصلحها نهائيًا](https://devoria.fr/ar/blog/missing-compliance-testflight-fix)
الكاتب: [Mehdi Azizi](https://devoria.fr/ar/mehdi-azizi)
النشر: 2026-11-06
آخر مراجعة للمحتوى: 2026-11-06


**Missing Compliance ليست خطأً، بل هي بناء (build) ينتظر إجابتك عن التشفير.** ما دمت لم تُجب، يبقى البناء محجوبًا عن المختبِرين. بالنسبة إلى هذا البناء، تُجيب عن الأسئلة في تبويب TestFlight داخل App Store Connect. أما البناءات التالية، فتضع المفتاح ITSAppUsesNonExemptEncryption في ملف Info.plist، أو `ios.config.usesNonExemptEncryption` في ملف app.json إذا كنت تستخدم Expo، ولن تعود هذه الحالة بعدها.

تطبيقاتي على iOS مبنية بـ Expo. في ملف app.json الخاص بـ Solys، قيمة المفتاح هي `false`، ووضعتُه مرتين: في `ios.config` وفي `ios.infoPlist`. يتبع هذا الدليل صفحات Apple عن [حالات البناء](https://developer.apple.com/help/app-store-connect/reference/app-uploads/app-build-statuses/) وعن [الامتثال لقواعد التصدير في البناءات التجريبية](https://developer.apple.com/help/app-store-connect/test-a-beta-version/provide-export-compliance-information-for-beta-builds/)، وقد راجعتُها في 6 نوفمبر 2026.

## ماذا تعني Missing Compliance

تعرّفها قائمة حالات البناء لدى Apple في جملة واحدة: وثائق الامتثال لقواعد التصدير ناقصة، والمطلوب إجراء منك. تعرضها Apple باللون الأصفر، وهو لون العملية الجارية التي تعتمد عليك أو على Apple، ويوضح وصفها أن المطلوب إجراء منك.

لماذا تطرح Apple هذا السؤال؟ تشرح ذلك [صفحة قواعد تصدير التشفير](https://developer.apple.com/documentation/security/complying-with-encryption-export-regulations): عندما ترسل بناءً إلى TestFlight أو إلى App Store، فأنت ترسله إلى خادم في الولايات المتحدة. وإذا كان تطبيقك يُوزَّع خارج الولايات المتحدة وكندا، فهو يخضع لقانون التصدير الأمريكي، أيًّا كان بلد شركتك. وبمجرد أن يستخدم التطبيق تشفيرًا أو يحتويه أو يدمجه، تعتبر Apple ذلك تصديرًا لبرمجيات تشفير.

**النتيجة: مع كل إصدار جديد، يطرح عليك App Store Connect أسئلة الامتثال، إلا إذا كان ملف Info.plist يجيب عنها مسبقًا.** لهذا يصل أول بناء من Expo في الغالب بحالة Missing Compliance.

## فك حجب البناء المنتظر

هذه الخطوات مأخوذة من صفحة Apple عن الامتثال لقواعد التصدير في البناءات التجريبية. تحتاج إلى دور Account Holder أو Admin أو App Manager.

1. في Apps، افتح تطبيقك، ثم تبويب TestFlight.
2. في الشريط الجانبي، تحت Builds، اختر المنصة.
3. في عمود Build، انقر على أيقونة البناء المعني أو رقمه.
4. انقر على Provide Export Compliance Information، ثم أجب عن الأسئلة.
5. إذا طلبت منك Apple وثائق، انقر على Go to App Encryption Page لإرسالها. وإلا فانقر على Save.

تصف Apple أيضًا طريقًا مختصرًا: بجانب البناء، يفتح الرابط Manage الأسئلة نفسها، ويتيح Choose File إرفاق وثائق سبقت الموافقة عليها. بعد الحفظ، ينتقل البناء إلى Ready to Submit، أو مباشرة إلى Testing إذا كان موجّهًا إلى مجموعة داخلية. أما Ready to Test فلا تظهر إلا بعد المراجعة التجريبية للمختبِرين الخارجيين.

**الرابط Manage غير قابل للنقر؟** تحقّق أولًا من دورك في الفريق: تحصر Apple الإجابة في أدوار Account Holder وAdmin وApp Manager، ولا يستطيع حساب Developer أو Marketing الإجابة. لا توثّق Apple سببًا آخر. إذا كان البناء قد أُرسل للتو، فانتظر رسالة البريد التي تُعلن انتهاء المعالجة، وهي مشروحة في الدليل الخاص بـ[رقم البناء ورقم الإصدار](https://devoria.fr/ar/blog/app-store-connect-build-number-version)، ثم أعد تحميل الصفحة.

## لا تُجب مرة أخرى أبدًا: المفتاح في مشروعك

تقولها Apple في صفحة البناءات التجريبية: يمكنك أن تُعلن في Info.plist أن تطبيقك لا يستخدم التشفير، أو أنه مُعفى، ولن تحتاج بعدها إلى الإجابة مع كل إرسال. اسم المفتاح هو [ITSAppUsesNonExemptEncryption](https://developer.apple.com/documentation/bundleresources/information-property-list/itsappusesnonexemptencryption). ويعرضه Xcode باسم App Uses Non-Exempt Encryption.

| أداتك            | الملف        | المكان                         | القيمة |
| ---------------- | ------------ | ------------------------------ | ------ |
| Expo (EAS Build) | `app.json`   | `expo.ios.config`              | false  |
| Expo، طريقة أخرى | `app.json`   | `expo.ios.infoPlist`           | false  |
| React Native خام | `Info.plist` | App Uses Non-Exempt Encryption | NO     |
| Xcode، Swift     | `Info.plist` | App Uses Non-Exempt Encryption | NO     |

في Expo، اسم المفتاح هو `usesNonExemptEncryption`، و[مرجع الإعدادات](https://docs.expo.dev/versions/latest/config/app/) يوضح أنه يكتب مفتاح Apple في ملف Info.plist الخاص بالبناء، وأن `ios.config` يُستخدم للبناء فقط: فهو لا يظهر في ملف manifest الخاص بالإنتاج.

```json
{
  "expo": {
    "ios": {
      "config": {
        "usesNonExemptEncryption": false
      }
    }
  }
}
```

في Expo، يقبل `ios.infoPlist` أيضًا المفتاح باسمه لدى Apple، وبالقيمة نفسها: وهذا هو السطر الثاني في ملف app.json الخاص بـ Solys. في مشروع أصلي (native)، يكفي سطر واحد في Info.plist للإعلان نفسه: المفتاح App Uses Non-Exempt Encryption، وهو الاسم الذي يعرضه Xcode، بالقيمة NO. القيمة منطقية (boolean)، وليست سلسلة نصية.

**يسري المفتاح بدءًا من البناء التالي.** البناء الذي أُرسل بالفعل يبقى في حالة Missing Compliance ما دمت لم تُجب في App Store Connect: الإجراءان لا يُغني أحدهما عن الآخر، بل يُكمّل أحدهما الآخر.

## false أم true: كيف تقرّر

تعرّف Apple القيمة NO هكذا: تطبيقك، بما فيه المكتبات الخارجية، لا يستخدم أي تشفير، أو يستخدم فقط تشفيرًا مُعفى من متطلبات التوثيق. وإلا فالقيمة YES.

ما يكون عادةً مُعفى، بحسب صفحة قواعد التصدير: التشفير المدمج في النظام، مثل اتصالات HTTPS عبر URLSession. وما ليس مُعفى: تشفير خاص كتبته بنفسك أو أدمجته. وتضيف [النظرة العامة على الامتثال لقواعد التصدير](https://developer.apple.com/help/app-store-connect/manage-app-information/overview-of-export-compliance/) تذكيرًا مهمًا: أنت المسؤول عن التفسير، وعن عواقبه، إذا ادّعيت إعفاءً عن خطأ.

لتطبيق Expo يتصل بواجهة API عبر HTTPS، ويحفظ تفضيلات، ويبيع اشتراكًا، فإن `false` هي الإجابة المعتادة. أما لتطبيق يشفّر بنفسه رسائل أو ملفات أو خزنة، فالإجابة `true`، وتنتظر Apple وثائق.

> لا تضع `false` بشكل تلقائي. راجع اعتمادياتك: مكتبة تشفير من طرف إلى طرف أو تخزين مشفّر من صنعك ينقلك إلى جانب الوثائق.

## إذا كان تطبيقك يستخدم تشفيرًا غير مُعفى

تصف [صفحة وثائق التشفير](https://developer.apple.com/help/app-store-connect/manage-app-information/determine-and-upload-app-encryption-documentation/) المسار. في App Information، بجانب App Encryption Documentation، يفتح زر الإضافة الأسئلة، ثم Choose File للمستند، ثم Save. تطلب Apple أن تكون قد ملأت وصف التطبيق وضبطت توفّره قبل ذلك، كي تحكم على كفاية الوثائق. وتستهدف نحو يومَي عمل عندما يكون الملف كاملًا.

بعد الموافقة على الوثائق، تمنحك Apple قيمة تضعها في المفتاح `ITSEncryptionExportComplianceCode` في ملف Info.plist. ومعها، لا أسئلة بعد الآن مع كل إرسال. أثناء المراجعة، يعرض بناؤك Waiting for Export Compliance Review أو In Compliance Review: لا شيء مطلوب منك.

نقطتان تنبّه إليهما Apple، الأولى في صفحة قواعد التصدير، والثانية في النظرة العامة على الامتثال:

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

## ما الذي يحدث بعد ذلك في TestFlight

يتبع البناء بعد فك حجبه المسار الطبيعي لأي بناء في TestFlight، المشروح في دليل [TestFlight لاختبار تطبيق iPhone](https://devoria.fr/ar/blog/testflight-test-iphone-app-before-submission): المختبِرون الداخليون فورًا، والمختبِرون الخارجيون بعد المراجعة التجريبية، وانتهاء الصلاحية بعد 90 يومًا، بحسب قائمة حالات البناء. أما التوقفات الأخرى الممكنة عند إرسال تطبيق Expo، مثل رقم بناء مستخدم سابقًا أو ملف مرفوض، فتجدها في [أخطاء الإرسال من EAS إلى App Store Connect](https://devoria.fr/ar/blog/eas-submit-ios-errors-fix)، والسلسلة الكاملة في [نشر تطبيق Expo على App Store باستخدام EAS](https://devoria.fr/ar/blog/eas-submit-ios-publish-expo-app-store).

يحتوي [iOS & Android Kit](https://devoria.fr/ar/kits/ios) على كود البداية الخاص بي لـ Expo، مع هذا المفتاح مضبوطًا مسبقًا، وعلى المسار الذي يوصلك من أول بناء إلى صفحة التطبيق في App Store. وإذا أردت أن تعرف ما الذي لا يزال يعيق نشر تطبيقك، فإن [التشخيص المجاني](https://devoria.fr/ar/diagnostic) يجيبك ببضعة أسئلة ويرسل إليك قائمتي لتجنّب رفض Apple. والخطوات الكاملة في [نشر تطبيق على App Store](https://devoria.fr/ar/expertise/publish-an-app-on-the-app-store).

## الأسئلة الشائعة

### ماذا تعني Missing Compliance في TestFlight؟

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

### لماذا لا يمكن النقر على رابط Manage في Missing Compliance؟

تحقّق من دورك: تحصر Apple الإجابة في أدوار Account Holder وAdmin وApp Manager. لا توثّق Apple سببًا آخر. إذا كان البناء قد وصل للتو، فأعد تحميل الصفحة بعد رسالة البريد التي تُعلن انتهاء المعالجة.

### تطبيقي يستخدم HTTPS فقط، هل يجب أن أجيب بنعم عن التشفير؟

تشير Apple إلى أن التشفير المدمج في النظام، مثل اتصالات HTTPS عبر URLSession، يكون عادةً مُعفى من متطلبات التوثيق. في هذه الحالة، تكون قيمة المفتاح ITSAppUsesNonExemptEncryption هي NO، بشرط ألا تضيف أي مكتبة خارجية تشفيرًا خاصًا.

### هل يجب الإجابة عن أسئلة التشفير مع كل بناء؟

نعم، ما دام ملف Info.plist لا يحتوي على المفتاح ITSAppUsesNonExemptEncryption. ومعه، لا يطرح App Store Connect الأسئلة بعد الآن. في Expo، يُضبط في app.json عبر `ios.config.usesNonExemptEncryption`.

### أين أُعلن عن التشفير في app.json مع Expo؟

في app.json، تحت `expo.ios.config`، مع `"usesNonExemptEncryption": false` إذا كان تطبيقك لا يستخدم أي تشفير غير مُعفى. يكتب EAS Build المفتاح في ملف Info.plist الخاص بالبناء. ويسري بدءًا من البناء التالي، لا على البناء الذي أُرسل بالفعل.

### هل تحجب Missing Compliance أيضًا الإرسال إلى App Store؟

تُطرح أسئلة الامتثال لقواعد التصدير مع كل إصدار جديد، تجريبيًا كان أو على App Store. البناء الذي لم يُجَب عنها لا يمكن توزيعه. والمفتاح في Info.plist يحل الحالتين معًا.

### هل يجب أن أقدّم تقريرًا سنويًا للتصنيف الذاتي؟

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


## مشروعك

[Review Kit](https://devoria.fr/ar/kits/app-review): قائمة التحقق التي أستخدمها لمراجعة App Store، وحالات رفض Apple التي واجهتها مع حلولها، وقائمة Google Play، وثلاث skills لـ Claude Code. ‏55 ⁦US$⁩.

[iOS & Android Kit](https://devoria.fr/ar/kits/ios): أنشئ تطبيقك لـ iPhone وAndroid باستخدام Claude Code: الكود الأساسي لتطبيقاتي، والمسار الكامل حتى النشر في المتاجر، وكل الحزم. ‏109 ⁦US$⁩.

[تشخيص: ما الذي يفصلك عن تطبيقك على iPhone](https://devoria.fr/ar/diagnostic): 7 أسئلة في 60 ثانية: تعرف ما الذي يعيقك فعلًا عن نشر تطبيقك على iPhone، ومسارك في 4 مراحل، والكيت المناسب لك.
