يوم الإصدار (release day) هو التاريخ المقرر لإطلاق نسخة جديدة من تطبيق محمول، ويتضمن تحضير البناء ومراجعة المتجر والتوزيع التدريجي (staged rollout) والمراقبة. بالنسبة لتطبيقات iOS، تبدأ العملية بتحميل البناء إلى App Store Connect قبل 24-48 ساعة من تاريخ الإصدار المخطط بسبب المراجعة الإلزامية من Apple. بالنسبة لنظام Android، يتم تجميع البناء وتحميله إلى Google Play Console، حيث تستغرق عملية المراجعة عادةً 1-4 ساعات. وفقًا لإرشادات Apple Developer (2025)، 90% من البناءات تجتاز المراجعة خلال 24 ساعة. التوزيع التدريجي (Staged rollout) يسمح بتقليل التأثير في حال اكتشاف أخطاء بعد النشر.
أهم النقاط
يوم الإصدار ليس مجرد لحظة الضغط على زر النشر. إنها عملية منسقة يشارك فيها المطورون وفرق ضمان الجودة والعمليات التنموية ومديرو المنتجات وأحيانًا فريق الدعم. يبدأ التحضير قبل 2-3 أسابيع من يوم الإصدار: الاتفاق على النطاق وتجميد الكود واختبارات الانحدار وإعداد ملاحظات الإصدار والمواد التسويقية. كلما كان التحضير أكثر دقة، كان يوم الإصدار أكثر سلاسة.
تتضمن قائمة التحقق للتحضير ليوم الإصدار: تشغيل ضمان الجودة النهائي (مجموعة اختبارات الانحدار + الاستكشافية) على بناء الإصدار؛ التحقق من البيانات الوصفية في المتاجر (الاسم والوصف ولقطات الشاشة والكلمات المفتاحية)؛ الاتفاق على نسبة التوزيع التدريجي مع مدير المنتج؛ إعداد خطة التراجع (أي علامة سيتم إعادة نشرها، والمدة التي ستستغرقها)؛ إخطار الفريق والخدمات ذات الصلة بالإصدار القادم. قائمة التحقق للإصدار يجب أن تكون مؤتمتة عبر CI/CD — على سبيل المثال، كسير عمل في GitHub Actions يتحقق من جميع النقاط قبل إنشاء علامة الإصدار.
عنصر مهم في التحضير هو فترة التعتيم (blackout period) — الفترة التي يُمنع فيها النشر في الإنتاج. عادةً، يتم تطبيق التعتيم قبل 48 ساعة من يوم الإصدار ويرفع بعد 24 ساعة من التوزيع الناجح بنسبة 100%. تجميد التغييرات خلال فترة التعتيم ينطبق على جميع الخدمات المرتبطة بالإصدار.
قبل 24-48 ساعة من يوم الإصدار، يتم تطبيق تجميد الكود (code freeze) — توقف تام للتغييرات في الكود. يتحول المطورون إلى تحضير التوثيق وملاحظات الإصدار. يقوم فريق DevOps بتجميع بناء الإصدار من علامة ثابتة (مثل v2.6.0-rc1). يخضع البناء لمجموعة اختبارات انحدار كاملة (تلقائية + يدوية). إذا تم العثور على أخطاء حرجة، يتم إصلاحها قبل تجميد الكود أو يتم تأجيل الإصدار. المرشح للإصدار (Release candidate - RC) — بناء اجتاز ضمان الجودة وجاهز للإرسال إلى المتجر.
الوسم في Git: يتم إنشاء وسم مشروح (git tag -a v2.6.0 -m «Release v2.6.0»). يقوم خط أنابيب CI/CD بتجميع AAB (حزمة Android للتطبيقات) لنشر Google Play و IPA (حزمة iOS لمتجر التطبيقات) لمتجر Apple App Store. يرفق مع البناء: ملف بمجاميع التحقق (SHA256) وسجل التغييرات وقائمة المشكلات المعروفة. البناءات القابلة للتكرار (Reproducible builds) — ممارسة مثالية حيث يؤدي إعادة التجميع من نفس العلامة إلى نتيجة متطابقة ثنائيًا.
# خط أنابيب الإصدار — إنشاء العلامة والتجميع
# يفترض أن تجميد الكود نشط بالفعل
# إنشاء فرع الإصدار من develop
git checkout develop
git pull origin develop
git checkout -b release/v2.6.0
git push origin release/v2.6.0
# تجميد الكود: قواعد حماية الفروع تمنع طلبات السحب الجديدة
# تشغيل مجموعة اختبارات الانحدار في CI/CD
./gradlew clean testReleaseUnitTest connectedReleaseTest
# إنشاء علامة الإصدار بعد نجاح ضمان الجودة
git tag -a v2.6.0 -m "Release v2.6.0: payment module, dark mode"
git push origin v2.6.0
# تجميع ثنائي الإصدار عبر CI/CD
# fastlane build_release ينتج AAB + universal APK
fastlane build_release
هام: تحديث الإصدار (version bump) يتم قبل تجميد الكود. بعد تجميد الكود، لا يتغير الإصدار. لنظام Android: versionCode — عدد صحيح متزايد بشكل رتيب؛ versionName — إصدار دلالي (2.6.0). لنظام iOS: CFBundleVersion (رقم البناء) و CFBundleShortVersionString (إصدار دلالي). إدارة الإصدارات (Versioning) يجب أن تكون مؤتمتة في gradle/xcconfig.
لنظام iOS: يتم تحميل البناء عبر Xcode أو Transporter أو fastlane إلى App Store Connect. بعد التحميل، يخضع البناء لفحص تلقائي من Apple (processing)، ثم يُرسل للمراجعة اليدوية. متوسط وقت المراجعة هو 24 ساعة، لكن يمكن أن يتراوح من ساعة إلى 7 أيام حسب عبء عمل مراجعي Apple ومتطلبات الامتثال. المراجعة المعجلة (Expedited review) — طلب مراجعة سريعة لإصلاحات الأخطاء الحرجة (متاح مرة واحدة شهريًا كحد أقصى، غير مضمون).
لنظام Android: يتم تحميل البناء عبر Google Play Console. تستخدم Google نهجًا مشتركًا: اختبار تلقائي (إمكانية الوصول والبرامج الضارة والامتثال للسياسات) + مراجعة يدوية انتقائية. متوسط وقت المراجعة هو 1-4 ساعات. مسار الاختبار الداخلي (Internal test track) والمسار المغلق يسمحان بإجراء اختبارات نهائية قبل النشر في مسار الإنتاج. التوصية: 1-2 أيام في الاختبار الداخلي → يوم واحد في الإصدار التجريبي المغلق → طرح تدريجي في الإنتاج.
لكلا المنصتين، من المهم جدًا التحقق من البيانات الوصفية قبل تحميل البناء: اسم التطبيق والوصف (القصير + الكامل) ولقطات الشاشة لكل جهاز مدعوم (iPhone 6.5″ و 5.5″ و iPad وهاتف Android والتابليت) والكلمات المفتاحية (iOS) أو تجارب قائمة المتجر (Android). خطأ في البيانات الوصفية يمكن أن يؤخر المراجعة ليوم إضافي. البيانات الوصفية للتطبيق يجب أن تكون مترجمة لجميع اللغات المدعومة.
التوزيع التدريجي (staged rollout) هو استراتيجية تصبح فيها النسخة الجديدة متاحة للمستخدمين تدريجيًا وليس دفعة واحدة. النمط النموذجي لفريق ناضج: 1% من المستخدمين (أول 2-4 ساعات) → 10% (24 ساعة) → 25% (24 ساعة) → 50% (24 ساعة) → 100%. تتضمن كل مرحلة مراقبة المقاييس والتحقق من عدم وجود أخطاء حرجة. التوزيع التدريجي هو الأداة الأساسية لتقليل المخاطر أثناء الإصدارات.
توفر Google Play Console توزيعًا تدريجيًا مدمجًا: يمكن تحديد نسبة المستخدمين وجدولة الزيادات التدريجية. بالنسبة لـ iOS App Store Connect، لا توجد هذه الميزة المدمجة — يتم تنفيذ التوزيع التدريجي من خلال الإصدار المرحلي (Phased Release — زيادة تلقائية للتغطية على مدى 7 أيام مع إمكانية الإيقاف المؤقت) أو من خلال أعلام الميزات على جانب الخادم مع التوزيع الجغرافي. الإصدار المرحلي في App Store Connect يسمح بإيقاف الإصدار مؤقتًا عند اكتشاف مشكلات.
المقاييس الرئيسية للانتقال إلى المرحلة التالية: معدل خلوه من الأعطال (crash-free rate ≥ 99.9% للإصدار الجديد)، معدل ANR (Android، ≥ 0.1%)، معدل الخطأ في API الخلفي (≥ 0.5% 5xx)، تقييمات المستخدمين (لا تقل عن الإصدار السابق)، درجة apdex (≥ 0.94). إذا تجاوز أي مقياس الحد، يتم إيقاف التوزيع مؤقتًا حتى تحديد الأسباب. بوابة go/no-go في كل مرحلة هي مسؤولية مدير الإصدار أو المهندس المناوب.
أول 4 ساعات بعد الإصدار هي الفترة الأكثر حرجًا. يراقب الفريق معدل الأعطال (Sentry و Firebase Crashlytics و App Center) ومعدل الخطأ 5xx في الخلفية والأحداث المخصصة (المدفوعات الناجحة وعمليات تسجيل الدخول والتسجيل) وتقييمات المستخدمين في App Store و Google Play وإشارات وسائل التواصل الاجتماعي (Twitter و Reddit). يجب أن تكون لوحة مراقبة التحضير جاهزة مسبقًا ومتاحة على شاشة كبيرة في المكتب أو في قناة Slack مخصصة. لوحة معلومات الإصدار — نافذة واحدة لجميع مقاييس الإصدار.
اهتمام خاص لمقاييس الانحدار: مقارنة معدل الأعطال بالإصدار السابق لنفس الفترة. إذا زاد معدل الأعطال بأكثر من 0.1%، فهذه علامة حمراء تتطلب تحليلًا فوريًا. من المهم أيضًا مقارنة زمن الاستجابة الوسيط و p95 لنقاط نهاية API الرئيسية: حتى بدون أعطال، قد تشير زيادة 200ms في وقت الاستجابة إلى مشكلة. مقارنة المقاييس (خط الأساس مقابل الحالي) تتم آليًا في Datadog أو Grafana.
ملاحظات المستخدمين لا تقل أهمية عن المقاييس الرقمية. في الساعات الأولى بعد الإصدار، يترك المستخدمون مراجعاتهم بنشاط في المتاجر ويكتبون إلى الدعم. الأخطاء التي لم تكتشفها الاختبارات تظهر بسرعة في المراجعات. يراقب قائد الفريق أو مهندس ضمان الجودة المخصص المراجعات كل 30 دقيقة في أول 4 ساعات ويصنفها: إيجابية خاطئة أو مشكلة معروفة (موجودة بالفعل في قائمة المشكلات المعروفة) أو خطأ جديد. الأخطاء الجديدة P0/P1 — محفز لإيقاف التوزيع مؤقتًا.
التراجع هو العودة إلى نسخة مستقرة سابقة عند اكتشاف مشكلات حرجة. يتخذ قرار التراجع مدير الإصدار بالاشتراك مع القائد التقني إذا: انخفض معدل خلوه من الأعطال للإصدار الجديد عن 99%، أو تم اكتشاف تسرب بيانات، أو تعطلت وظيفة حرجة (المدفوعات أو المصادقة) لأكثر من 5% من المستخدمين، أو رفض المتجر (App Store Review) البناء بعد النشر. مشغل التراجع يجب تحديده قبل الإصدار ليكون القرار مبنيًا على الحقائق وليس العواطف.
لنظام Android: التراجع في Google Play Console يعني إيقاف التوزيع التدريجي والتحويل إلى الإصدار السابق. إذا كان البناء الحالي موزعًا بالفعل على 100% من المستخدمين، يتم نشر الإصدار السابق كإصدار جديد. لنظام iOS: عبر App Store Connect — الإصدار المرحلي → إيقاف الإصدار مؤقتًا → إصدار نسخة جديدة مع التصحيح (App Store لا يسمح بالعودة إلى إصدار سابق). التراجع في iOS أكثر تعقيدًا: يحتاج المطور إلى تجميع بناء جديد مع عمليات تراجع الالتزامات واجتياز المراجعة مرة أخرى.
بعد التراجع، ينتقل الفريق إلى وضع الحادث: تحليل السبب الجذري وإصلاح عاجل أو الإصدار التالي مع التصحيح ومراجعة ما بعد الحادث. التراجع ليس فشلًا بل إجراء قياسي. الفرق التي لم تقم بالتراجع أبدًا على الأرجح لا تلاحظ المشكلات، وليس أنها تصدر إصدارات خالية من الأخطاء. معدل التراجع هو أحد مقاييس DORA: الفرق عالية الأداء تقوم بالتراجع في أقل من 10% من الإصدارات وتتعافى في أقل من ساعة.
الأسئلة المتكررة
أفضل الأيام هي الثلاثاء والأربعاء أو الخميس. الإثنين — حركة مرور عالية من عطلة نهاية الأسبوع، والجمعة — خطر الدخول في عطلة نهاية الأسبوع مع إصدار به مشكلات. تجنب الجمعة: إذا تم اكتشاف مشكلة بعد النشر، سيقوم الفريق بإصلاحها خلال عطلة نهاية الأسبوع أو الانتظار حتى الإثنين.
اقرأ سبب الرفض في مركز الحلول، ثم أصلحه وأعد تحميل البناء. الأسباب الشائعة: روابط معطلة وحقول غير مكتملة ومحتوى بدون اشتراك (إذا كان مطلوبًا) ولقطات شاشة قديمة. رفض مراجعة App Store يؤخر الإصدار لمدة 24-48 ساعة، لذلك يجب أن يكون التحميل الأول للبناء قبل 3-5 أيام من تاريخ الإصدار المخطط.
للإصدارات الكبيرة (تغييرات رئيسية) — 1%. لإصدارات التصحيحات — 5-10%. يجب أن تكون المرحلة الأولى صغيرة بما يكفي بحيث يكون التأثير ضئيلًا في حالة حدوث خطأ، ولكن كبيرة بما يكفي للحصول على مقاييس ذات دلالة إحصائية. 1% لتطبيق لديه 10 ملايين مستخدم يعني 100,000 شخص — كافٍ لاكتشاف المشكلات الحرجة.
حفلة الإصدار (احتفال فريقي) اختيارية ولكنها مفيدة للروح المعنوية. من الأفضل إجراؤها بعد توزيع ناجح بنسبة 100% وليس في لحظة تحميل البناء. احتفال الإصدار يمكن دمجه مع مراجعة ما بعد الإصدار لمناقشة ما سار بشكل جيد وما يمكن تحسينه.
تقع المسؤولية على مدير الإصدار (عادة مهندس أول أو قائد تقني). يتم اتخاذ القرار بناءً على بيانات لوحة معلومات الإصدار، وليس على أساس الموعد النهائي. مدير الإصدار لديه صلاحية تأخير الإصدار إذا كانت المقاييس لا تجتاز بوابة go/no-go.
الخلاصة
سنقوم بتطوير تطبيق جوال جاهز
تقدم IT Sectr تطبيقات iOS وAndroid للشركات الناشئة والشركات منذ عام 2017. سوف نقدم لك النصح ونقترح أفضل حل.