أسئلة مقابلات Release, App Stores & CI/CD في React Native
10 سؤال عن Release, App Stores & CI/CD من مسار React Native. اقرأ الإجابة المختصرة لكل سؤال هنا، وافتح السؤال للشرح الكامل والأمثلة والأخطاء الشائعة والمصادر.
- متقدم
ما هي المتطلبات الصارمة لنشر التطبيقات على متجر Apple App Store ومراجعات إرشادات آبل؟
الالتزام بحذف الحساب المباشر من داخل التطبيق، واستخدام Apple In-App Purchase للمنتجات الرقمية، وتوفير رابط سياسة الخصوصية، وتبرير كافة الأذونات المطلوبة في Info.plist، وتوفير حساب تجريبي صالح للمراجعة.
اقرأ الشرح الكامل - متوسط
كيف تعد تطبيق أندرويد للنشر على متجر Google Play وما هي صيغة Android App Bundle (AAB)؟
صيغة AAB هي المعيار الإلزامي في متجر Google Play، حيث تتضمن كافة الأكواد والموارد، ويقوم المتجر بإنشاء وتقديم ملفات APK مخصصة ومصغرة لكل جهاز مستخدم بناءً على لغته وكثافة شاشته ومعمارية معالجه.
اقرأ الشرح الكامل - متقدم
كيف تدير شهادات التوقيع الرقمي (Code Signing) في iOS باستخدام Fastlane Match؟
يقوم Fastlane Match بأتمتة إدارة شهادات التطوير والتوزيع وملفات التعريف (Provisioning Profiles) ومشاركتها بأمان وتشفير كامل عبر مستودع Git خاص مشفر بين كافة أعضاء الفريق وسيرفرات CI/CD.
اقرأ الشرح الكامل - مبتدئ
ما هي استراتيجيات توزيع النسخ التجريبية للمختبرين (TestFlight & Internal App Sharing)؟
استخدام TestFlight لنظام iOS لإرسال النسخ تلقائياً للمختبرين الداخليين والخارجيين (حتى 10,000 مختبر)، واستخدام Internal Testing أو Firebase App Distribution لنظام أندرويد للتوزيع الفوري.
اقرأ الشرح الكامل - متقدم
كيف تبني خط أتمتة مستمر (CI/CD Pipeline) متكامل لمشاريع React Native باستخدام GitHub Actions؟
بإنشاء Workflow يقوم بالتحقق من جودة الكود والفحص الساكن (Lint, Typecheck, Unit Tests)، ثم استدعاء EAS CLI أو Gradle/Fastlane لبناء الحزم وتوزيعها تلقائياً عند الدمج في فرع main.
اقرأ الشرح الكامل - متقدم
ما هي استراتيجيات الترقية الدورية لإصدارات React Native (Upgrading Strategy)؟
بالاعتماد على أداة React Native Upgrade Helper لمقارنة الفروقات الدقيقة بين الإصدارات سطراً بسطر، أو استخدام npx expo install --fix لتحديث كافة الحزم المتوافقة تلقائياً.
اقرأ الشرح الكامل - مبتدئ
كيف تدير أرقام الإصدارات (Versioning) بين versionCode و versionName و CFBundleVersion؟
يمثل versionName (في أندرويد) و CFBundleShortVersionString (في iOS) رقم الإصدار الظاهر للمستخدم (مثل 1.2.0)، بينما versionCode و CFBundleVersion يمثلان رقم البناء الداخلي التراكمي الإلزامي لكل رفع جديد للمتجر.
اقرأ الشرح الكامل - متقدم
ما هي الفحوصات الأمنية وقواعد حماية الكود المصدري ضد الهندسة العكسية (Reverse Engineering)؟
بتفعيل Hermes لترجمة الكود مسبقاً إلى Bytecode (وهي ترجمة وليست تشفيراً)، واستخدام ProGuard/R8 لتشويش كود أندرويد الأصلي، وتفعيل شهادات التثبيت الآمن (SSL Pinning) لمنع اعتراض هجمات Man-In-The-Middle.
اقرأ الشرح الكامل - متقدم
كيف تدير الشراء داخل التطبيق (In-App Purchases - IAP) واشتراكات المتاجر باستخدام RevenueCat؟
باستخدام منصة ومكتبة RevenueCat (react-native-purchases) لإدارة الاشتراكات عبر iOS و Android بواجهة برمجية موحدة تتكفل بالتحقق من الإيصالات، وتجديد الاشتراكات، والتعامل مع فترات السماح.
اقرأ الشرح الكامل - متوسط
ما هي معايير إطلاق التحديثات التدريجية (Phased / Staged Rollouts) وكيف تنقذك من الكوارث غير المكتشفة؟
بإطلاق النسخة الجديدة لنسبة مئوية صغيرة من المستخدمين أولاً (مثل 1% ثم 5% ثم 20% ثم 100%) ومراقبة تقارير الأخطاء ومعدل الانهيار (Crash Rate) قبل تعميمها للجميع.
اقرأ الشرح الكامل