> ## Documentation Index
> Fetch the complete documentation index at: https://docs.lerix.dev/llms.txt
> Use this file to discover all available pages before exploring further.

# قواعد التحديث

> أخبر المستخدمين بصدور إصدار جديد، أو أوصِ به، أو اجعله إلزامياً، مع الإصدارات المحظورة والمواعيد النهائية وروابط المتاجر.

افتح **التحكم بالإصدارات ← التحديثات** من القائمة الجانبية للمشروع. لكل منصة
يعمل عليها مشروعك بطاقة خاصة، وتحمل كل بطاقة قاعدة واحدة لكل بيئة (`prod` ما لم
تختر غيرها).

## القاعدة

انقر **إنشاء قاعدة** (أو **تعديل القاعدة**) على بطاقة المنصة. للقاعدة هذه الحقول:

| الحقل | وظيفته |
| - | - |
| **أحدث إصدار** و**أحدث رقم بناء** | يُطلب من الأجهزة الأقدم منه التحديث. |
| **الحد الأدنى للإصدار** و**الحد الأدنى لرقم البناء** | يجب على الأجهزة الأقدم منه التحديث للمتابعة. |
| **الإصدارات المحظورة** | إصدارات بعينها يجب تحديثها، حتى لو كانت أعلى من الحد الأدنى. |
| **الأقدم من الأحدث** | طريقة مطالبة الأجهزة الواقعة بين الحد الأدنى والأحدث: **اختياري** (يمكن تأجيلها أو تخطيها) أو **مُوصى به** (يمكن تأجيلها لكن لا يمكن تخطيها). |
| **يصبح إجبارياً في** | تاريخ ووقت اختياريان بتوقيتك المحلي. بعدهما يجب على الإصدارات الأقدم من الأحدث التحديث. |
| **التذكير مجدداً بعد (ساعات)** | المدة التي يُخفي فيها زر **لاحقاً** المطالبة، من 1 إلى 720. الافتراضي 72. |
| **السماح بـ«تخطي هذا الإصدار»** | يُظهر **تخطي هذا الإصدار** في التحديثات الاختيارية. لا يمكن تخطي التحديثات المُوصى بها. |
| **الدول** | اختياري. تنطبق القاعدة على الأجهزة في هذه الدول فقط. الفراغ يعني **كل الدول**. |
| **رابط المتجر لهذه القاعدة** | اختياري. يتجاوز رابط متجر التطبيق. راجع [روابط المتاجر](#روابط-المتاجر). |
| **الرسالة** | العنوان والرسالة وملاحظات الإصدار، بالعربية والإنجليزية. |
| **مفعّلة** | أوقف القاعدة دون أن تفقدها. |

تحتاج القاعدة إلى أحدث إصدار أو حد أدنى أو إصدار محظور على الأقل (أو رقم بناء)،
ويحتاج **يصبح إجبارياً في** إلى أحدث إصدار.

## كيف تُحدَّد حالة الجهاز

يفحص Lerix لكل جهاز القاعدةَ الخاصة بمنصته وبيئته، بهذا الترتيب، وأول تطابق هو
الذي يُعتمد.

**1. هل تنطبق القاعدة؟**

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

**2. هل الإصدار محظور؟**

الإصدار الموجود في قائمة الحظر **إلزامي**.

**3. هل هو أقل من الحد الأدنى؟**

ما كان أقل من أدنى إصدار (أو أدنى رقم بناء) **إلزامي**.

**4. هل هو أقل من أحدث إصدار؟**

ما كان أقل من أحدث إصدار (أو أحدث رقم بناء) **اختياري** أو **مُوصى به**
بحسب حقل **الأقدم من الأحدث**. وإذا مضى تاريخ **يصبح إجبارياً في**، يصبح
**إلزامياً**.

**5. غير ذلك**

الجهاز محدَّث، ولا يُعرض شيء.

الحالات الأربع وما يراه المستخدم في كل منها مذكورة في
[النظرة العامة](https://docs.lerix.dev/ar/modules/release-control/overview.md#تنبيهات-التحديث).

### الإصدارات وأرقام البناء

* تُقارن الإصدارات رقمياً، جزءاً جزءاً، فيكون `1.10.0` أحدث من `1.9.2`. لا
  تُقارن أبداً كنصوص.
* إذا كان لدى القاعدة والجهاز كليهما رقم بناء، فرقم البناء هو الفيصل. يرسل iOS
  وmacOS قيمة `CFBundleVersion`، ويرسل أندرويد `versionCode`، ويرسل Flutter الرقم
  الذي يلي `+` في `pubspec.yaml`.
* الإصدار الذي لا يحتوي على أي رقم لا تمكن مقارنته، ولا يُحظر الجهاز الذي يحمله
  أبداً.
* لا يمكن أن يكون أدنى إصدار أعلى من أحدث إصدار.

### الإصدارات المحظورة

استخدم قائمة الحظر حين يكون إصدار واحد معطوباً والإصدارات المحيطة به سليمة.
فمثلاً، إذا كان الحد الأدنى `3.0.0` والإصدار `3.2.0` محظوراً، يتابع مستخدمو
`3.1.4` عملهم، بينما يجب على مستخدمي `3.2.0` التحديث.

### التصعيد بموعد نهائي

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

### الدول

يحدد Lerix دولة الجهاز من عنوان IP. والجهاز الذي تتعذر معرفة دولته لا يطابق أبداً
قاعدةً تحدد دولاً. اترك القائمة فارغة لتطبيق القاعدة في كل مكان.

## التذكير والتخطي

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

## روابط المتاجر

يفتح زر **تحديث** أول رابط متوفر من هذه:

1. **رابط المتجر لهذه القاعدة**. استخدمه لـ TestFlight، أو لنسخة مؤسسية، أو
   لمتجر آخر مثل Huawei AppGallery.
2. **رابط المتجر** الخاص بالتطبيق، تحت بطاقة المنصة (**تعديل الرابط**).
3. رابط يبنيه Lerix بنفسه:
   * **أندرويد**: `https://play.google.com/store/apps/details?id=<package name>`.
   * **iOS وmacOS**: `https://apps.apple.com/app/id<App Store ID>`، بعد معرفة
     معرّف التطبيق في App Store.

لتعبئة معرّف App Store، انقر **البحث في App Store** على تطبيق iOS أو macOS. يبحث
Lerix في App Store بمعرّف الحزمة (bundle ID) ويحفظ المعرّف الذي يجده. وإذا لم
يُعثر على التطبيق (لم يُنشر بعد، أو ليس في المتاجر التي يبحث فيها Lerix)، فالصق
رابط المتجر بنفسك.

إذا لم يتوفر أي رابط، تنبّهك البطاقة إلى أن زر التحديث سيُخفى، وتعرض شاشة التحديث
الإلزامي رسالتك دون زر **تحديث**. وعلى أندرويد مع تفعيل تحديثات Google Play داخل
التطبيق، قد يظهر الزر مع ذلك للتثبيتات من Play.

وعلى أندرويد، يمكن للتطبيقات المثبتة من Google Play أن تستخدم شاشة التحديث
الخاصة بـ Play داخل التطبيق بدلاً من فتح المتجر. يفعّل تطبيقك ذلك عبر الحزمة،
راجع [Kotlin](https://docs.lerix.dev/ar/frameworks/android/release-control.md) و
[Flutter](https://docs.lerix.dev/ar/frameworks/flutter/release-control.md).

## تطبيقات الويب

لا متجر لتطبيقات الويب، ولا ينطبق رابط المتجر على الويب أبداً. فحين ينطبق تحديث،
يعيد زر **تحديث** تحميل الصفحة لتحميل أحدث نشر لديك.

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

لا تعرف حزم الويب إصدارها إلا من خيار `release`. ومن دونه لا تنطبق قواعد التحديث
على مستخدمي الويب أبداً. استخدم رقم إصدار يحتوي على أرقام، مثل `1.4.0`، بدلاً من
معرّف commit.

```ts theme={"dark"}
await Lerix.initialize({
  apiKey: 'your-api-key',
  projectId: 'your-project-id',
  release: '1.4.0',
});
```

وفي Next.js، اضبط `NEXT_PUBLIC_LERIX_RELEASE` وقت البناء بدلاً من ذلك.

## النص

لكل قاعدة عنوان ورسالة وملاحظات إصدار بالعربية والإنجليزية. ترسل الحزمة لغة
الجهاز، فيختار Lerix الأقرب إليها: وسم اللغة الكامل، ثم اللغة، ثم الإنجليزية.
وتُستخدم هذه النصوص الافتراضية للحقول الفارغة:

| الحالة | العنوان | الرسالة |
| - | - | - |
| إلزامي | التحديث مطلوب | هذا الإصدار لم يعد مدعوماً. يرجى التحديث للمتابعة. |
| اختياري أو مُوصى به | يتوفر تحديث | يتوفر إصدار جديد يتضمن تحسينات وإصلاحات. |

الحدود: العنوان 80 حرفاً، والرسالة 500، وملاحظات الإصدار 2,000. أما الأزرار
(**تحديث**، **لاحقاً**، **تخطي هذا الإصدار**، **إعادة التحميل**) وعنوان «ما
الجديد» فوق ملاحظات الإصدار فمدمجة في الحزمة بالعربية والإنجليزية.

## الإصدارات المستخدمة

تحت القاعدة، يسرد جدول **الإصدارات المستخدمة** الإصدارات التي ظهرت على الأجهزة خلال
آخر 30 يوماً، حسب الإصدار الحالي لكل جهاز، من الأحدث إلى الأقدم. وحين يصل إصدار
جديد إلى 5 أجهزة على الأقل أو 1% من المنصة، يقترحه Lerix ("الإصدار 3.4.0 يعمل على
37 جهاز. هل تريد جعله أحدث إصدار؟"): انقر **تعيين كأحدث إصدار** لإدخاله في القاعدة.

## المعاينة وفحوص الأمان

أثناء تعديل القاعدة، تعرض البطاقة عدد الأجهزة النشطة خلال آخر 30 يوماً التي
ستتأثر، مثل "ستحظر هذه القاعدة 1,240 جهاز (31%)"، موزعةً على: يجب التحديث،
ويُوصى بالتحديث، ويُعرض عليه التحديث، ومحدّث، وإصدار غير معروف. وتعتمد المعاينة على
إصدار الجهاز وحده: فهي تتجاهل **الدول**، والقاعدة التي لا تحدد إلا أرقام البناء
تظهر في المعاينة كأنها لا تؤثر في أحد.

وقبل الحفظ، يطلب منك Lerix التأكيد إذا كانت القاعدة:

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

ويتحقق Lerix أيضاً من أن كل إصدار يحتوي على رقم، وأن الحد الأدنى ليس أعلى من
الأحدث، وأن الدول رموز ISO من حرفين.

## إيقاف القاعدة

* إيقاف **مفعّلة** يُبقي القاعدة لكنه يمنع تطبيقها.
* **حذف القاعدة** يزيلها.
* **رفع الكل**، في تبويب **الطوارئ**، ينهي كل نوافذ الصيانة ويوقف كل قاعدة تحديث
  إجباري (فيها حد أدنى، أو إصدار محظور، أو موعد نهائي). وتبقى مطالبات التحديث
  الاختيارية والمُوصى بها كما هي. راجع
  [وضع الصيانة](https://docs.lerix.dev/ar/modules/release-control/maintenance-mode.md#رفع-الكل).

يُسجَّل كل تغيير في السجل، وتُدفع التغييرات التي تمنع المستخدمين أو ترفع المنع
عنهم إلى الأجهزة فوراً. راجع
[وصول التغييرات والعمل دون اتصال](https://docs.lerix.dev/ar/modules/release-control/delivery-offline.md).


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.