في التطبيق الصغير، يعني ترحيل OneSignal SDK استبدال استدعاء تهيئة واحد ومعالج نقرات. أما في التطبيق الكبير، فإن OneSignal موجود في عشرات الأماكن: وسوم تُضبط في وحدة الملف الشخصي، ومعرّف مستخدم خارجي في وحدة المصادقة، ومعالجات نقرات في التنقل، ومحفزات رسائل داخل التطبيق في مكان ما من صفحة الدفع.

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

يغطي هذا الدليل 9 أدوات تجعل الاستبدال آمناً، مقسّمة حسب خطوات الترحيل الخمس: الرصد، والاستبدال، والاختبار، والإطلاق، والمراقبة.

أما جانب المزوّد، فراجع دليلنا الكامل للانتقال من OneSignal إلى Pushwoosh.

لماذا يتعطل ترحيل SDK الإشعارات الفورية في التطبيقات الكبيرة

يلمس SDK الإشعارات الفورية جزءاً من الشيفرة أكبر مما تلمسه معظم المكتبات الخارجية. وعادةً ما تسوء 4 أمور:

  • استدعاءات متفرقة. الوسوم ومعرّفات المستخدمين الخارجية ومعالجات النقرات موجودة في وحدات مختلفة، وأحياناً في مستودعات مختلفة. البحث النصي عن «OneSignal» يجد الاستدعاءات الواضحة ويفوّت الأغلفة (wrappers).
  • اعتماديات مخفية. أحداث التحليلات والروابط العميقة واختبارات A/B كثيراً ما تعتمد على callbacks الخاصة بـ SDK. احذف الـ callback، وستتوقف لوحة بيانات في مكان ما عن التحديث.
  • SDK اثنان في بناء واحد. وجود SDK إشعارات اثنين في تطبيق واحد يجعلهما يتنافسان على callbacks الإشعارات نفسها. لهذا يوصي دليل الترحيل إلى Pushwoosh بإزالة OneSignal SDK في الإصدار نفسه الذي يضيف SDK الجديد.
  • إخفاقات صامتة. الإشعار الذي لم يصل لا يرمي خطأً. وتقارير الأعطال تبقى نظيفة.

سير عمل الترحيل خطوة بخطوة

لكل خطوة نمط إخفاق خاص بها وأدوات خاصة بها.

الخطوةما الذي قد يسوءالأدوات
1. الرصديفوتك استدعاء لـ OneSignal أو اعتمادية عليهCodeAlive
2. الاستبداللا تنتقل الرموز (tokens) أو الوسوم أو معرّفات المستخدمينPushwoosh
3. الاختباريتعطل التسجيل أو محتوى الإشعار (payload) قبل الإصدارApple Push Notifications Console، Firebase Cloud Messaging، Proxyman
4. الإطلاقيصل بناء معيب إلى جميع المستخدمين دفعة واحدةfastlane، App Store phased release وGoogle Play staged rollouts
5. المراقبةتمر الأعطال أو انخفاضات الوصول دون أن يلاحظها أحدFirebase Crashlytics، إحصائيات رسائل Pushwoosh
الخطوة
1 / 5
1. الرصد
ما الذي قد يسوء
يفوتك استدعاء لـ OneSignal أو اعتمادية عليه
الأدوات
CodeAlive
الخطوة
2 / 5
2. الاستبدال
ما الذي قد يسوء
لا تنتقل الرموز (tokens) أو الوسوم أو معرّفات المستخدمين
الأدوات
Pushwoosh
الخطوة
3 / 5
3. الاختبار
ما الذي قد يسوء
يتعطل التسجيل أو محتوى الإشعار (payload) قبل الإصدار
الأدوات
Apple Push Notifications Console، Firebase Cloud Messaging، Proxyman
الخطوة
4 / 5
4. الإطلاق
ما الذي قد يسوء
يصل بناء معيب إلى جميع المستخدمين دفعة واحدة
الأدوات
fastlane، App Store phased release وGoogle Play staged rollouts
الخطوة
5 / 5
5. المراقبة
ما الذي قد يسوء
تمر الأعطال أو انخفاضات الوصول دون أن يلاحظها أحد
الأدوات
Firebase Crashlytics، إحصائيات رسائل Pushwoosh

9 أدوات لترحيل OneSignal SDK بأمان

الأداةالخطوةما الذي تحلهالفئة المجانيةنموذج التسعير
CodeAliveالرصدتجد كل استدعاء لـ OneSignal واعتمادياته عبر قواعد الشيفرة الكبيرة، وتمنح وكلاء الذكاء الاصطناعي السياق الكاملنعم: مستخدم واحد، 25 MB من المستودعات، 100 طلب محادثة شهرياًمن $15 شهرياً، حسب الاستخدام
Pushwooshالاستبدالمنصة إشعارات مستهدفة مع استيراد الجمهور وSDK للتطبيقات الأصلية ومتعددة المنصاتأول 1,000 MAU مجاناً في خطة Push only$7 لكل 1,000 MAU (Push only)
Apple Push Notifications Consoleالاختبارترسل إشعارات تجريبية عبر APNs، وتتحقق من الرموز، وتعرض سجلات الوصولمشمولة في عضوية Apple Developer Programدون رسوم منفصلة
Firebase Cloud Messagingالاختبارترسل رسالة تجريبية إلى رمز FCM محددنعم، دون تكلفةمجانية
Proxymanالاختبارتفحص حركة الشبكة الصادرة من SDK ومحتوى الطلباتمجانية بحدود (تجربة أسبوعين للاستخدام التجاري)من $89 لمرة واحدة
fastlaneالإطلاقتؤتمت الإصدارات مع خيارات الإطلاق المرحلي والتدريجيمفتوحة المصدرمفتوحة المصدر
App Store phased release / Google Play staged rolloutsالإطلاقتحصر البناء الجديد في نسبة من المستخدمينمدمجة في المتجرينمشمولة
Firebase Crashlyticsالمراقبةالأعطال والأخطاء غير القاتلة بعد الاستبدالنعم، دون تكلفةمجانية
إحصائيات رسائل Pushwooshالمراقبةالإرسال والوصول والفتح والأخطاء حسب المنصةمشمولة مع Pushwooshمشمولة
الأداة
1 / 9
CodeAlive
الخطوة
الرصد
ما الذي تحله
تجد كل استدعاء لـ OneSignal واعتمادياته عبر قواعد الشيفرة الكبيرة، وتمنح وكلاء الذكاء الاصطناعي السياق الكامل
الفئة المجانية
نعم: مستخدم واحد، 25 MB من المستودعات، 100 طلب محادثة شهرياً
نموذج التسعير
من $15 شهرياً، حسب الاستخدام
الأداة
2 / 9
Pushwoosh
الخطوة
الاستبدال
ما الذي تحله
منصة إشعارات مستهدفة مع استيراد الجمهور وSDK للتطبيقات الأصلية ومتعددة المنصات
الفئة المجانية
أول 1,000 MAU مجاناً في خطة Push only
نموذج التسعير
$7 لكل 1,000 MAU (Push only)
الأداة
3 / 9
Apple Push Notifications Console
الخطوة
الاختبار
ما الذي تحله
ترسل إشعارات تجريبية عبر APNs، وتتحقق من الرموز، وتعرض سجلات الوصول
الفئة المجانية
مشمولة في عضوية Apple Developer Program
نموذج التسعير
دون رسوم منفصلة
الأداة
4 / 9
Firebase Cloud Messaging
الخطوة
الاختبار
ما الذي تحله
ترسل رسالة تجريبية إلى رمز FCM محدد
الفئة المجانية
نعم، دون تكلفة
نموذج التسعير
مجانية
الأداة
5 / 9
Proxyman
الخطوة
الاختبار
ما الذي تحله
تفحص حركة الشبكة الصادرة من SDK ومحتوى الطلبات
الفئة المجانية
مجانية بحدود (تجربة أسبوعين للاستخدام التجاري)
نموذج التسعير
من $89 لمرة واحدة
الأداة
6 / 9
fastlane
الخطوة
الإطلاق
ما الذي تحله
تؤتمت الإصدارات مع خيارات الإطلاق المرحلي والتدريجي
الفئة المجانية
مفتوحة المصدر
نموذج التسعير
مفتوحة المصدر
الأداة
7 / 9
App Store phased release / Google Play staged rollouts
الخطوة
الإطلاق
ما الذي تحله
تحصر البناء الجديد في نسبة من المستخدمين
الفئة المجانية
مدمجة في المتجرين
نموذج التسعير
مشمولة
الأداة
8 / 9
Firebase Crashlytics
الخطوة
المراقبة
ما الذي تحله
الأعطال والأخطاء غير القاتلة بعد الاستبدال
الفئة المجانية
نعم، دون تكلفة
نموذج التسعير
مجانية
الأداة
9 / 9
إحصائيات رسائل Pushwoosh
الخطوة
المراقبة
ما الذي تحله
الإرسال والوصول والفتح والأخطاء حسب المنصة
الفئة المجانية
مشمولة مع Pushwoosh
نموذج التسعير
مشمولة

الخطوة 1. ارصد كل استدعاء لـ OneSignal

1. CodeAlive: الأفضل لرصد استدعاءات SDK عبر قواعد الشيفرة الكبيرة ومتعددة المستودعات

CodeAlive محرك سياق لقواعد الشيفرة

تمنح CodeAlive وكلاء البرمجة بالذكاء الاصطناعي سياقاً دقيقاً عبر قاعدة الشيفرة كاملة، وتقلّل الرموز التي ينفقونها في البحث عنه. إنها محرك سياق مصمم لقواعد شيفرة تتجاوز مليون سطر: بحث دلالي إضافة إلى رسم بياني للعلاقات بين الملفات والرموز البرمجية والاستدعاءات والاعتماديات والاختبارات، يُقدَّم عبر MCP وAPI.

دورها في الترحيل: قبل أن يعدّل أحد الشيفرة، تسأل CodeAlive أين يُستخدم OneSignal وما الذي يعتمد عليه. يكشف رسم العلاقات استدعاءات تتجاوز الواضحة منها: الأغلفة، والـ callbacks التي تعتمد عليها التحليلات، والاختبارات التي تحاكي SDK. ويذهب السياق نفسه إلى وكيل الذكاء الاصطناعي الذي ينفّذ الاستبدال.

الميزات الأساسية:

  • استرجاع هجين: بحث دلالي ومطابقة نصية واجتياز للرسم البياني في استعلام واحد
  • تحديث الفهرس مع كل push، فتبقى الخريطة حديثة بينما يتقدم فرع الترحيل
  • أدوات MCP، منها semantic_search وgrep_search وchat، لـ Cursor وClaude Code وCodex وWindsurf وZed وContinue وCline
  • مراجعة طلبات الدمج بالذكاء الاصطناعي مع مراعاة النظام بأكمله
  • مزوّدو Git: GitHub وGitLab وBitbucket وAzure DevOps وGitea. بيئات التطوير: VS Code وJetBrains

الإيجابيات:

  • ترصد الاعتماديات عبر المستودعات
  • تعمل داخل الوكلاء وبيئات التطوير التي يستخدمها فريقك أصلاً

الخطوة 2. استبدل SDK وانقل الجمهور

2. Pushwoosh: الأفضل كمنصة مستهدفة مع استيراد الجمهور

Pushwoosh منصة تفاعل العملاء

Pushwoosh منصة تفاعل العملاء تجمع الإشعارات الفورية والرسائل داخل التطبيق والبريد الإلكتروني وSMS وWhatsApp. وأثناء الترحيل، يستورد فريق Pushwoosh جمهورك بينما يطلق مطوروك SDK الجديد.

دورها في الترحيل: تُستورد رموز الإشعارات على iOS وAndroid وHuawei وتستمر في العمل، لأن الرموز تخص تطبيقك ومفاتيحك. ويُنقل مشتركو البريد الإلكتروني وSMS ضمن الاستيراد أيضاً. ويُربط external_user_id بمعرّف المستخدم User ID في Pushwoosh (اطلب هذا العمود في تصدير OneSignal، فهو غير موجود في التصدير الافتراضي)، وتُعاد إنشاء الوسوم من التصدير. الاستثناء هو إشعارات الويب: لا يمكن لأي مزوّد نقل اشتراكات المتصفح، لذا يعيد Pushwoosh Web SDK اشتراك الزوار بصمت.

الميزات الأساسية:

  • SDK لـ iOS وAndroid، إضافة إلى React Native وFlutter وUnity وCapacitor وCordova وMAUI وExpo وغيرها
  • استيراد الجمهور بالتوازي مع إصدار SDK، فتبقى الأجهزة قابلة للوصول قبل أن يحدّث المستخدمون التطبيق
  • أجهزة اختبار لمعاينة الإشعارات على جهاز حقيقي قبل الإرسال

الإيجابيات:

  • الاستيراد لا ينتظر تحديث المستخدمين للتطبيق من المتجر
  • نحو يوم عمل واحد على SDK لمطوّر واحد، حسب دليل الترحيل

التسعير: خطة Push only بسعر $7 لكل 1,000 MAU، وأول 1,000 MAU مجاناً. قارن فاتورتك الحالية باستخدام حاسبة تكلفة OneSignal.

👈

قارن المنصات جنباً إلى جنب: Pushwoosh مقابل OneSignal، أو اطّلع على القائمة الأوسع من بدائل OneSignal مقارنةً حسب السعر والحدود.

الخطوة 3. اختبر التسجيل والوصول

3. Apple Push Notifications Console: الأفضل لاختبار الوصول على iOS عبر APNs

Apple Push Notifications Console

Push Notifications Console أداة ويب من Apple لإرسال إشعارات تجريبية عبر APNs. وهي طريقة سريعة لاستبعاد المزوّد عندما لا يصل إشعار على iOS.

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

الميزات الأساسية:

  • إشعارات تجريبية إلى جهاز، مع إعادة الإرسال بعد تغيير الخصائص
  • سجلات الوصول التي تُظهر مسار الإشعار عبر APNs، لبيئة التطوير
  • التحقق من الرموز لبيئة ونوع إشعار محددين
  • مقاييس الوصول للإشعارات التجريبية وإشعارات الإنتاج

الإيجابيات:

  • مباشرة من Apple، دون طرف ثالث بينكما
  • تتحقق من رموز الإشعارات قبل أن تلوم SDK

4. Firebase Cloud Messaging: الأفضل لاختبار إشعارات Android حسب الرمز

رسالة تجريبية في Firebase Cloud Messaging

تمر إشعارات Android على الأجهزة التي تعمل بخدمات Google Play عبر Firebase Cloud Messaging (أما أجهزة Huawei التي لا تملك خدمات Google فتستخدم HMS Push Kit). ويمكن لـ Firebase console إرسال رسالة تجريبية إلى رمز تسجيل واحد، ما يجعلها أداة بسيطة لاختبار الإشعارات الفورية في إصدارات Android.

دورها في الترحيل: بعد أن يسجّل SDK الجديد جهازاً، تلصق رمز FCM الخاص به في الـ console وترسل اختباراً. إذا وصل، فالرمز وإعداد Firebase سليمان.

الميزات الأساسية:

  • Send test message إلى رمز تسجيل FCM محدد من الـ console
  • دون شيفرة للفحص السريع، باستثناء قراءة الرمز من الجهاز

الإيجابيات:

  • استخدام Cloud Messaging دون تكلفة
  • إشعارات Android تمر عبرها أصلاً

5. Proxyman: الأفضل لفحص حركة SDK ومحتوى الطلبات

Proxyman وكيل HTTP لتصحيح الأخطاء

Proxyman وكيل HTTP لتصحيح الأخطاء على macOS وWindows وLinux. يُظهر ما يرسله SDK الإشعارات فعلياً: استدعاءات التسجيل، وتحديثات معرّف المستخدم، وطلبات الوسوم.

دورها في الترحيل: تشغّل التطبيق مع SDK الجديد وتراقب طلباته. إذا لم يغادر وسمٌ الجهاز أبداً، فستراه هنا، قبل وقت طويل من ظهور شريحة فارغة.

الميزات الأساسية:

  • التقاط حركة HTTPS من التطبيقات على الأجهزة والمحاكيات
  • التقاط بنقرة واحدة من iOS Simulator وAndroid Emulator في الخطط المدفوعة
  • نقاط توقف وMap Local/Remote لتعديل الطلبات والاستجابات

الخطوة 4. أطلق على مراحل

6. fastlane: الأفضل لأتمتة الإصدارات المرحلية

fastlane لأتمتة الإصدارات

fastlane منصة مفتوحة المصدر لأتمتة نشر تطبيقات iOS وAndroid. وقيمتها في الترحيل تكمن في معاملين يمكنك برمجتهما في مسار الإصدار.

دورها في الترحيل: يقبل upload_to_app_store المعامل phased_release: true، الذي يطلق التحديث على مدى 7 أيام. ويقبل upload_to_play_store قيمة rollout، أي نسبة المستخدمين الذين يحصلون على البناء (0.1 تعني 10%؛ و1 تُكمل الإطلاق). وهكذا يتبع إصدار الترحيل المسار المرحلي نفسه في كل مرة، ولا ينسى أحد خانة الاختيار.

الميزات الأساسية:

  • deliver / upload_to_app_store مع phased_release
  • supply / upload_to_play_store مع rollout وrelease_status (بما في ذلك halted)
  • مسار (lane) واحد للمتجرين

الإيجابيات:

  • مفتوحة المصدر
  • تجعل الإطلاق التدريجي هو الوضع الافتراضي بدلاً من خطوة يدوية

7. App Store phased release وGoogle Play staged rollouts: الأفضل لتقليص نطاق الضرر

إعدادات الإصدار المرحلي في App Store
إعدادات الإطلاق التدريجي في Google Play

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

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

الميزات الأساسية:

  • App Store: يُطلق على مدى 7 أيام لـ 1% ثم 2% و5% و10% و20% و50%، ثم 100% من المستخدمين الذين فعّلوا التحديثات التلقائية. يمكنك الإيقاف المؤقت لمدة تصل إلى 30 يوماً إجمالاً أو الإطلاق للجميع في أي وقت
  • Google Play: تحدد النسبة وترفعها يدوياً. يمكنك إيقاف الإطلاق واستئنافه، ويحتفظ المستخدمون الذين حدّثوا بالبناء
  • اختيار عشوائي للمستخدمين في المتجرين

الإيجابيات:

  • مدمجة في المتجرين
  • يمكن إيقاف البناء المعيب عند 1% من المستخدمين

الخطوة 5. راقب الأعطال والوصول

8. Firebase Crashlytics: الأفضل لرصد الأعطال بعد الاستبدال

لوحة Firebase Crashlytics

تُبلغ Firebase Crashlytics عن الأعطال والأخطاء غير القاتلة في تطبيقات Android وApple وFlutter وUnity. شغّلها طوال فترة الإطلاق وقارن البناء الجديد بالسابق.

دورها في الترحيل: أي عطل في معالج الإشعارات أو أثناء تهيئة SDK يظهر هنا أولاً. وتساعد الأحداث غير القاتلة في المشكلات الأهدأ: سجّل حدثاً غير قاتل عند فشل تسجيل الإشعارات، وستراه لكل بناء.

الميزات الأساسية:

  • تقارير الأعطال مجمّعة في مشكلات، مع فلترة حسب البناء
  • أحداث غير قاتلة تُسجّل على الجهاز وتُرسل عند التشغيل التالي للتطبيق
  • SDK رسمية لـ Android وApple وFlutter وUnity

9. إحصائيات رسائل Pushwoosh: الأفضل لرصد انخفاضات الوصول الصامتة

إحصائيات الإشعارات الفورية في Pushwoosh

لن تخبرك تقارير الأعطال بأن الإشعارات توقفت عن الوصول. أما إحصائيات الإشعارات الفورية في Pushwoosh فستخبرك.

دورها في الترحيل: لكل إشعار، ترى المسار من الجمهور إلى الإرسال ثم الوصول والفتح، حسب المنصة، إضافة إلى تبويب منفصل للأخطاء. قارن الحملات الأولى بعد الانتقال بأرقام OneSignal السابقة. إذا تأخر الوصول على iOS عن Android، فتحقق من بيانات الاعتماد قبل أن تتحقق من الشيفرة.

خطة ترحيل من 5 خطوات للتطبيقات الكبيرة

اجرد كل استدعاء لـ OneSignal قبل أن تلمس الشيفرة

أدرج كل استدعاء لـ SDK، وكل غلاف وcallback واختبار، عبر جميع المستودعات. تصبح هذه القائمة قائمة التحقق للاستبدال ولمراجعة الشيفرة.

اجمع الإشعارات خلف واجهة داخلية واحدة

مرّر كل استدعاء للإشعارات عبر خدمة داخلية واحدة: تسجيل الدخول، وتسجيل الخروج، والوسوم، ومعالجة الإشعارات. وبذلك يغيّر الترحيل تنفيذاً واحداً بدلاً من 50 موضع استدعاء، ويصبح تغيير المزوّد التالي أسهل أيضاً.

protocol PushService {
func login(userId: String)
func setTags(_ tags: [String: Any])
func handleNotificationOpen(_ payload: [AnyHashable: Any])
}

استبدل SDK في إصدار واحد

أضف Pushwoosh SDK وأزل OneSignal SDK في البناء نفسه. وجود SDK إشعارات اثنين في تطبيق واحد يجعلهما يتنافسان على callbacks الإشعارات. وأثناء إطلاق البناء الجديد، واصل الإرسال من OneSignal إلى المستخدمين على الإصدار القديم.

أطلق على مراحل وقارن مقاييس الوصول

ابدأ بنسبة صغيرة من المستخدمين عبر phased release أو staged rollout. راقب الأعطال في Crashlytics والوصول في إحصائيات Pushwoosh، ثم وسّع الإطلاق. وإذا تزامن الترحيل مع موسم ذروة مثل رمضان أو الجمعة البيضاء، فخطّط لإكماله قبل بدء الحملات الكبرى.

أوقف الإرسال من OneSignal فقط بعد التحقق من الوصول

إلى أن توقف الإرسال من OneSignal، فإن التراجع يعني ببساطة مواصلة الإرسال منه. أوقفه بعد تأكيد الوصول عبر Pushwoosh واكتمال استيراد الجمهور.

🛠️

مع Pushwoosh، يتولى فريقنا جانب المزوّد: ترسل بيانات اعتماد الإشعارات وتصدير الجمهور، وتطلق SDK الجديد في إصدارك التالي. اطّلع على دليل الترحيل الكامل

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

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

Pushwoosh Team
Content Team في Pushwoosh
مشاركة

مقالات ذات صلة

عرض الكل