تطبيقك غير متوافق مع Android الجديد أو متطلبات Google Play للإصدار المستهدف
تحذير من Google Play عن مستوى API المستهدف، أو تحديث عاجل رُفض، أو عملاء بأجهزة حديثة يشتكون من شاشات مختفية وإشعارات لا تصل. هذا الدليل يساعدك على تشخيص المشكلة وتقدير حجم الترقية وطريقة اختبارها.
حين يكون التطبيق غير متوافق مع Android الجديد، فأنت أمام إحدى مشكلتين أو الاثنتين معًا. الأولى سياسة: منذ 31 أغسطس 2026 لا يقبل Google Play تحديثًا أو تطبيقًا جديدًا لا يستهدف Android 16 (مستوى API 36)، والتطبيق القائم الذي يستهدف أقل من Android 15 يختفي عن المستخدمين الجدد على الأجهزة الأحدث. الثانية سلوك: شاشات تختفي تحت أشرطة النظام، أو زر رجوع لا يعمل كما كان، أو إشعارات وتتبع في الخلفية تتوقف. العلاج في الحالتين مشروع ترقية لا تعديل رقم: تحديث أدوات البناء والمكتبات، ورفع المستوى المستهدف، ومعالجة ما تغير في كل إصدار بينهما، ثم اختبار على أجهزة حقيقية وإطلاق تدريجي.
وصلتك رسالة من Google Play عن مستوى API المستهدف، أو حاول فريقك رفع إصلاح عاجل فرُفض الملف، أو بدأ عملاء بأجهزة جديدة يشتكون من شاشة لا يظهر فيها زر التأكيد. السؤال الذي يطرحه صاحب المشروع عادة: «هل هي مشكلة صغيرة؟». الجواب يعتمد على المسافة بين المستوى الذي يستهدفه تطبيقك الآن والمستوى المطلوب، وعلى ما يستخدمه التطبيق من خصائص النظام. هذا الدليل يساعدك على التشخيص، ثم على تقدير حجم العمل وطريقة اختباره.
شخّص أولًا: أي مشكلة تواجه، وما مدى إلحاحها؟
ابدأ من العَرَض الذي أمامك. الجدول يربط كل عَرَض بسببه المرجح ودرجة إلحاحه:
| العَرَض | السبب المرجح | الإلحاح |
|---|---|---|
| رفض ملف التحديث عند الرفع إلى Play Console برسالة عن المستوى المستهدف | التطبيق يستهدف مستوى أقل من المطلوب للتحديثات | عاجل: لا يمكن نشر أي تحديث، ولا حتى إصلاح عطل |
| تحذير في Play Console أو بريد من Google عن موعد قادم | المتطلب السنوي القادم أو مستوى التطبيق الحالي | مخطط: ابدأ قبل الموعد لا عنده |
| تراجع التثبيتات الجديدة، أو عملاء لا يجدون التطبيق على أجهزة حديثة | تطبيق قائم يستهدف مستوى أقل من الحد الأدنى لبقائه ظاهرًا للمستخدمين الجدد | عاجل تجاريًا |
| أزرار أو نصوص مختفية تحت شريط الحالة أو شريط التنقل | فرض عرض الشاشة من الحافة إلى الحافة بعد رفع المستوى المستهدف | عالٍ إن كان الزر في مسار الشراء أو التأكيد |
| زر الرجوع يغلق التطبيق أو يتجاوز تأكيدًا كان يظهر | تغير معالجة الرجوع في المستويات الحديثة | عالٍ في النماذج الطويلة ومسارات الدفع |
| الإشعارات لا تصل للمستخدمين الجدد على الأجهزة الحديثة | إذن الإشعارات أصبح إذنًا يُطلب وقت التشغيل | عالٍ إن كانت الإشعارات جزءًا من الخدمة |
| تتبع المندوب أو المزامنة في الخلفية تتوقف | قيود الخدمات الأمامية وأنواعها في المستويات الحديثة | حرج في تطبيقات التوصيل والخدمات الميدانية |
| شاشات ممطوطة أو مقصوصة على الأجهزة اللوحية والقابلة للطي | تجاهل قيود الاتجاه ونسبة العرض على الشاشات الكبيرة | متوسط، ويرتفع إن كان جمهورك يستخدمها |
| فشل البناء نفسه بعد تغيير المستوى | أدوات بناء أو مكتبات قديمة لا تدعم المستوى الجديد | مؤشر على حجم الترقية الحقيقي |
الصفوف الثلاثة الأولى مشكلة سياسة: التطبيق قد يعمل جيدًا، لكن المتجر لا يقبله أو لا يعرضه. والبقية مشكلة سلوك: التطبيق يُنشر، لكنه لا يعمل كما يجب. وفي الغالب تظهر الثانية مباشرة بعد حل الأولى، لأن رفع المستوى المستهدف هو ما يفعّل السلوك الجديد.
متطلب المستوى المستهدف في Google Play: ما يفرضه وما يترتب على تجاهله
كل تطبيق Android يعلن في إعداداته مستوى API الذي يستهدفه (targetSdkVersion)، أي إصدار Android الذي بُني ليعمل وفق قواعده. تحدّث Google هذا المتطلب سنويًا، وبحسب متطلبات مستوى API المستهدف في Google Play:
- التحديثات والتطبيقات الجديدة: منذ 31 أغسطس 2026 يجب أن تستهدف Android 16 (مستوى API 36) أو أعلى لتُقبل في Google Play، مع استثناءات لتطبيقات الساعات والسيارات والتلفاز.
- التطبيقات القائمة: يجب أن تستهدف Android 15 (مستوى API 35) أو أعلى لتبقى متاحة للمستخدمين الجدد على الأجهزة التي تعمل بإصدار Android أحدث من مستواها. ما يستهدف Android 14 أو أقل يظهر فقط على الأجهزة التي إصدارها مساوٍ لمستواه المستهدف أو أقدم.
- التمديد: أتاحت Google طلب مهلة إضافية حتى 1 نوفمبر 2026 عبر نماذج في Play Console. بعد هذا التاريخ لا يبقى إلا التحديث.
- الاستثناء: التطبيقات الخاصة الموزعة داخليًا على مستخدمي منظمة محددة بشكل دائم.
الأثر الذي يفاجئ أصحاب المشاريع: التطبيق لا يُحذف من المتجر، ويستمر في العمل عند مستخدميه الحاليين، فيبدو كل شيء طبيعيًا. لكن أول مرة تحتاج فيها إلى إصلاح عاجل، كعطل في الدفع، لن تستطيع نشره حتى تكتمل الترقية كلها. لهذا يجب أن تسبق الترقية الحاجة إليها.
وهناك متطلب آخر قريب يستحق أن يدخل الخطة نفسها: بحسب وثائق دعم أحجام الصفحات 16 KB، يجب أن تدعم التطبيقات التي تستهدف Android 15 فأعلى أحجام صفحات الذاكرة 16 KB على الأجهزة 64-bit، وابتداءً من 1 فبراير 2027 لن تستطيع نشر تحديثات لا تدعمها. هذا يمس التطبيقات التي تحتوي على مكتبات بكود أصلي، ومنها كثير من مكتبات الدفع والخرائط والكاميرا.
ما الذي يتغير حين ترفع المستوى المستهدف؟
رفع المستوى المستهدف يعني أن التطبيق يقبل قواعد كل إصدار بين مستواه القديم والجديد دفعة واحدة. تطبيق يستهدف Android 13 ويُرفع إلى 16 يمر بتغييرات ثلاثة إصدارات، لا إصدار واحد. هذه أبرز التغييرات التي تمس تطبيقات الأعمال، من وثائق Android الرسمية لتغييرات السلوك:
| عند استهداف | التغيير | أثره في تطبيقك | ما تختبره |
|---|---|---|---|
| Android 12 (API 31) | مكونات التطبيق التي تستقبل نوايا يجب أن تعلن صراحة هل هي متاحة لتطبيقات أخرى | بدون هذا الإعلان لا يُثبَّت التطبيق على Android 12 فأحدث | التثبيت، والروابط العميقة، وفتح التطبيق من الإشعار |
| Android 13 (API 33) | إذن الإشعارات يُطلب من المستخدم وقت التشغيل | المستخدم الجديد لا يستقبل إشعارات إن لم يُطلب الإذن في الوقت المناسب | توقيت طلب الإذن وشرحه، ومسار من رفضه |
| Android 14 (API 34) | كل خدمة أمامية يجب أن تعلن نوعها (موقع، مزامنة بيانات، وسائط…) | التتبع والمزامنة والتحميل في الخلفية قد تتوقف أو تنهار | تتبع الموقع مع إغلاق الشاشة، والمزامنة الطويلة |
| Android 15 (API 35) | عرض الشاشة من الحافة إلى الحافة مفروض افتراضيًا | أجزاء من الواجهة قد تختفي تحت أشرطة النظام | كل شاشة فيها زر أسفلها أو شريط أعلاها |
| Android 16 (API 36) | إلغاء إمكانية الانسحاب من العرض من الحافة إلى الحافة، وتفعيل الرجوع التنبؤي افتراضيًا، وتجاهل قيود الاتجاه ونسبة العرض على الشاشات التي عرضها الأصغر 600dp فأكثر | حلول مؤقتة سابقة تتوقف، ومعالجة زر الرجوع القديمة لا تُستدعى، وتخطيط الشاشات يتغير على الأجهزة اللوحية والقابلة للطي | زر الرجوع في كل مسار، والتطبيق على جهاز لوحي أو قابل للطي |
التفاصيل الكاملة في صفحات تغييرات السلوك لكل إصدار، مثل تغييرات Android 16 للتطبيقات المستهدفة وتغييرات Android 15. وتنبه صفحة Android 16 إلى أن إمكانية الانسحاب المؤقت من تجاهل قيود الاتجاه على الشاشات الكبيرة لن تبقى عند استهداف المستوى 37. أي أن الحل المؤقت اليوم دين يُستحق في الترقية القادمة.
لماذا لا يكفي تغيير رقم واحد: الأدوات والمكتبات
في المشاريع التي لم تُحدَّث منذ مدة، تغيير المستوى المستهدف أسهل خطوة، وما يسبقها هو العمل الحقيقي:
- أدوات البناء: إصدار Gradle وإضافة Android للبناء وKotlin يجب أن تدعم مستوى SDK الجديد. ترقيتها قد تكشف إعدادات قديمة لم تعد مقبولة.
- إطار العمل: في Flutter، تأتي قيمة المستوى المستهدف افتراضيًا من إصدار Flutter نفسه كما توضح وثائق نشر Flutter على Android. تطبيق على إصدار Flutter قديم قد يحتاج إلى ترقية الإطار أولًا، ومعها لغة Dart والحزم التي يعتمد عليها.
- المكتبات الخارجية: مكتبات الدفع والخرائط والإشعارات والتحليلات يجب أن تكون بإصدارات تدعم المستوى الجديد. مكتبة متوقفة عن التطوير تعني استبدالها، وهذا قد يمس منطق التطبيق.
- الكود الأصلي: أي جزء مكتوب بـ Kotlin أو Java داخل التطبيق، أو مكتبة بكود أصلي، يُراجع مع تغييرات السلوك ومع متطلب 16 KB.
لهذا تختلف الترقية من تطبيق لآخر اختلافًا كبيرًا. تطبيق حُدّث قبل عام يحتاج غالبًا إلى رفع المستوى ومعالجة تغييرات إصدار واحد. وتطبيق متوقف منذ سنوات قد يحتاج إلى سلسلة ترقيات للإطار والمكتبات قبل أن يُبنى أصلًا؛ هذا ما تفصله مقالة تحديث تطبيق Flutter قديم. وإن كان فشل البناء نفسه أول ما تواجهه، فقد تكون أمام سؤال أكبر تجيب عنه مقالة علامات أن تطبيقك يحتاج إعادة تطوير لا صيانة.
مثال: تطبيق مندوبين يستهدف Android 13
خذ حالة افتراضية شائعة: شركة توصيل لديها تطبيق للمندوبين مبني بـ Flutter، آخر تحديث له يستهدف Android 13، ويتتبع موقع المندوب أثناء التوصيل حتى مع إغلاق الشاشة. رُفض تحديث عاجل في Play Console بسبب المستوى المستهدف. ما يظهر عند الترقية إلى 36:
- البناء: إصدار Flutter قديم لا يدعم المستوى الجديد، فتلزم ترقيته، ومعه مكتبتا الخرائط والموقع وإصداراتهما.
- التتبع في الخلفية: خدمة التتبع لم تعلن نوعها، فتتوقف أو تنهار على Android 14 فأحدث. يُعلن نوع الخدمة المناسب مع أذوناته، وقد يلزم تصريح بذلك في Play Console.
- الواجهة: زر «تم التسليم» أسفل الشاشة يختفي خلف شريط التنقل على Android 15 فأحدث، فتُعالج هوامش النظام في كل شاشة.
- الرجوع: رسالة «هل تريد إلغاء التوصيل؟» كانت تظهر عند الضغط على الرجوع، ولم تعد تظهر لأن المعالجة القديمة لا تُستدعى. يُنقل المنطق إلى الطريقة الحديثة.
- الإشعارات: المندوب الجديد لا يستقبل إشعار الطلب لأن الإذن لم يُطلب. يُضاف طلبه بشرح واضح عند أول تسجيل دخول.
لا شيء من هذا يظهر في رسالة Google Play، التي تتحدث عن رقم فقط. لكنه ما يحدد حجم العمل، ولهذا لا يصح تقدير الترقية قبل بناء التطبيق على المستوى الجديد وتجربته.
خطة التحديث والاختبار على الأجهزة
- جرد الفجوةالمستوى الحالي، وإصدارات الأدوات والمكتبات، والخصائص المتأثرةالفريق التقني
- ترقية الأدواتالإطار وأدوات البناء والمكتبات حتى يُبنى التطبيقالفريق التقني
- رفع المستوىومعالجة تغييرات كل إصدار بين القديم والجديدالفريق التقني
- الاختبارعلى مصفوفة أجهزة وإصدارات، ثم مسار اختبار مغلقالفريق والمنشأة
- إطلاق تدريجيلنسبة من المستخدمين مع مراقبة الأعطالالفريق والمنشأة
أما الاختبار، فلا يكفي أحدث جهاز لدى المطور. مصفوفة الأجهزة تُبنى من جمهورك الفعلي، ويمكن استخراجه من تقارير الأجهزة وإصدارات Android في Play Console. هذا نموذج تبدأ منه:
| فئة الجهاز | إصدار Android | ما تركز عليه |
|---|---|---|
| هاتف حديث من الشريحة الأكثر انتشارًا بين مستخدميك | Android 16 | كل التغييرات: الحواف، والرجوع، والإشعارات، والخلفية |
| هاتف متوسط أو اقتصادي | Android 14 أو 15 | الأداء، والخدمات في الخلفية، وسلوك إدارة البطارية لدى الشركة المصنعة |
| أقدم جهاز تدعمه رسميًا | أقدم إصدار في إعداداتك | أن الترقية لم تكسر شيئًا للإصدارات القديمة |
| جهاز لوحي أو قابل للطي إن كان في جمهورك | Android 16 | التخطيط بعد تجاهل قيود الاتجاه ونسبة العرض |
| الأجهزة الميدانية أو المُدارة إن وُجدت | بحسب ما تسلمه الشركة | الماسح المدمج، والتوزيع عبر نظام إدارة الأجهزة |
ولتصميم هذه المصفوفة بتفصيل أكبر، راجع مقالة اختبار التطبيق على الأجهزة. وإن كان التطبيق على المتجرين، فغالبًا تواجه متطلبًا مماثلًا من Apple لإصدار أدوات البناء؛ تتناوله مقالة تطبيقك لا يعمل على iOS الجديد.
أخطاء شائعة عند التعامل مع تحذير المستوى المستهدف
- تأجيل الترقية لأن التطبيق «يعمل»: حتى يحتاج إصلاحًا عاجلًا لا يمكن نشره.
- تغيير الرقم وحده ثم الرفع: يُقبل الملف في المتجر، وتظهر الأعطال عند المستخدمين بدل أن تظهر في الاختبار.
- الإطلاق للجميع دفعة واحدة: ترقية تمس الواجهة والخلفية معًا تستحق إطلاقًا تدريجيًا يمكن إيقافه.
- الاكتفاء بالحلول المؤقتة: الانسحاب من سلوك جديد يؤجل المشكلة إلى الترقية التالية، وبعضها أُلغي فعلًا في Android 16.
- نسيان تصريحات Play Console: بعض التغييرات، كأنواع الخدمات الأمامية والأذونات الحساسة، يرافقها تصريح في صفحة محتوى التطبيق.
- ترقية بلا مالك للمتطلب السنوي: تُحل المشكلة هذا العام، وتتكرر العام القادم بالمفاجأة نفسها.
ما تطلبه من شركة التطوير قبل أن توافق على الترقية
- المستوى المستهدف الحالي والمطلوب، وإصدارات الإطار وأدوات البناء والمكتبات الحالية والمستهدفة.
- قائمة تغييرات السلوك التي تمس تطبيقك تحديدًا، لا قائمة Android العامة.
- المكتبات التي تحتاج استبدالًا لأنها متوقفة أو لا تدعم المستوى الجديد أو متطلب 16 KB، وأثر كل استبدال.
- مصفوفة الأجهزة والإصدارات التي سيُختبر عليها، وتقرير الاختبار بعد التنفيذ.
- خطة الإطلاق: مسار اختبار مغلق، ثم إطلاق تدريجي بنسب، وشرط إيقافه.
- التصريحات المطلوبة في Play Console بعد الترقية، ومن يعدّها.
- كيف سيُتابع المتطلب السنوي القادم، وهل يدخل ضمن عقد الدعم.
في إصلاح أخطاء التطبيق نبدأ بالتشخيص قبل الإصلاح، ونرتب الأخطاء حسب أثرها على عملائك وإيرادك، ونضيف اختبارًا يمنع عودة كل خطأ. وضمن عقد الصيانة والدعم تدخل تحديثات أنظمة التشغيل ومتطلبات المتاجر، فنحدّث التطبيق حين يطلب Google Play رفع المستوى المستهدف قبل الموعد الذي تحدده Google، ونختبر أثر التغييرات الجديدة، كما تذكر صفحة برمجة تطبيقات Android.
ما تجهزه قبل التواصل
- نص رسالة Google Play أو لقطة التحذير من Play Console، وتاريخها.
- صلاحية اطلاع على Play Console لرؤية المستوى المستهدف الحالي وتقارير الأجهزة والأعطال.
- الوصول إلى الكود المصدري، أو على الأقل معرفة مكانه ومن يملكه.
- قائمة بما يعتمد عليه التطبيق: الدفع، والخرائط، والتتبع في الخلفية، والإشعارات، والكاميرا، والماسحات.
- أجهزة يستخدمها عملاؤك أو موظفوك فعلًا، وأي شكوى محددة وصلتك مع طراز الجهاز وإصدار Android.
- هل يوجد إصلاح أو ميزة معلقة تنتظر الترقية، لترتيب الأولويات بينهما.
الخلاصة: عامل الترقية كمشروع صغير له خطة
رسالة Google Play تتحدث عن رقم، لكن الرقم يخفي ما تغير في Android بين آخر تحديث لتطبيقك واليوم. شخّص أولًا هل المشكلة سياسة أم سلوك أم الاثنتان، ثم قدّر الفجوة في الأدوات والمكتبات، وارفع المستوى مع معالجة تغييرات كل إصدار، واختبر على أجهزة جمهورك، وأطلق تدريجيًا. وضع المتطلب السنوي في تقويم الصيانة حتى لا يتحول إلى أزمة كل عام.
إن وصلك التحذير أو رُفض تحديثك، أرسل رسالة Google Play وتفاصيل تطبيقك عبر طلب تطوير تطبيق قائم، ونرد بتشخيص أولي للفجوة وخطة الترقية والاختبار.
أسئلة شائعة
لأن Google Play لا يقبل أي تحديث لا يستهدف المستوى المطلوب، بما في ذلك إصلاح عاجل لعطل في الدفع أو الدخول. وإن كان المستوى أقل من الحد الأدنى للتطبيقات القائمة، فلن يجده المستخدمون الجدد على الأجهزة الأحدث. الترقية تحمي قدرتك على التحديث قبل أن تحتاجها.
نادرًا. تغيير الرقم يفعّل قواعد كل إصدار Android بين المستوى القديم والجديد، مثل فرض العرض من الحافة إلى الحافة وتغير معالجة الرجوع وأنواع الخدمات في الخلفية. وقد يحتاج التطبيق قبل ذلك إلى ترقية إطار العمل وأدوات البناء والمكتبات حتى يُبنى أصلًا.
بحسب متطلبات Google Play الحالية لا يُحذف بسبب المستوى المستهدف وحده، ويستمر عند المستخدمين الحاليين. لكن لا يمكن نشر أي تحديث له، ويصبح غير متاح للمستخدمين الجدد على الأجهزة التي تعمل بإصدار Android أحدث من مستواه إن كان أقل من الحد الأدنى.
لا يوجد عدد ثابت. ابدأ من تقارير الأجهزة وإصدارات Android في Play Console، واختر هاتفًا حديثًا من الشريحة الأكثر انتشارًا، وهاتفًا اقتصاديًا، وأقدم إصدار تدعمه، وجهازًا لوحيًا إن كان في جمهورك، والأجهزة الميدانية إن وُجدت.
بعض التغييرات تسري على كل التطبيقات عند تثبيتها على إصدار Android الجديد، وأغلبها لا يُفعّل إلا عند رفع المستوى المستهدف. لذلك اختبر تطبيقك الحالي على الإصدار الجديد عند صدوره، ثم اختبره مرة أخرى بعد الترقية.
خدمات وصفحات مرتبطة
اقرأ أيضًا
رُفض تحديثك أو وصلك تحذير المستوى المستهدف؟
أرسل رسالة Google Play وتفاصيل تطبيقك، ونرد بتشخيص أولي للفجوة في الأدوات والمكتبات، وخطة الترقية والاختبار على الأجهزة.