- بواسطة x32x01 ||
وأنا برفع تحديث جديد لتطبيق على متجر Google Play، حصل موقف غريب شوية خلاني أراجع حساباتي 😅
فجأة اتسألت في Play Console سؤال مباشر:
لأني ببساطة ما ضفتش أي SDK خاص بالإعلانات!
لكن اللي حصل بعد كده كان مفاجأة فعلًا…
ساعتها وقفت لحظة وقلت:
إزاي ده موجود وأنا ما استخدمتش أي إعلانات؟!
بدأت أراجع آخر التعديلات اللي عملتها، وكانت عبارة عن:
لما ضفت Firebase Analytics، وهو بالفعل SDK، حصلت حاجة مش واضحة لكثير من المطورين:
وهنا اكتشفت إن:
الكود ده بيعمل حاجتين:
منقول عن المطور / السيد مجدى
فجأة اتسألت في Play Console سؤال مباشر:
الإجابة كانت واضحة بالنسبة لي: لا ❌هل تطبيقك بيستخدم Advertising ID؟
لأني ببساطة ما ضفتش أي SDK خاص بالإعلانات!
لكن اللي حصل بعد كده كان مفاجأة فعلًا…
ازاي ظهر Advertising ID Permission وأنا مش مستخدمه؟ 🤔
وأنا براجع إعدادات التطبيق، اكتشفت إن فيه Permission موجود فعلًا:com.google.android.gms.permission.AD_IDساعتها وقفت لحظة وقلت:
إزاي ده موجود وأنا ما استخدمتش أي إعلانات؟!
بدأت أراجع آخر التعديلات اللي عملتها، وكانت عبارة عن:
- تحسينات على UI
- إضافة Firebase Analytics
هل Firebase Analytics هو السبب؟ 🤖
الإجابة: أيوه ✅لما ضفت Firebase Analytics، وهو بالفعل SDK، حصلت حاجة مش واضحة لكثير من المطورين:
بعض الـ Libraries بتضيف Permissions تلقائيًا أثناء عملية الـ Build بدون ما تكون مكتوبة عندك بشكل مباشر!
الصدمة الحقيقية: Merged Manifest 😳
عشان أتأكد، عملت مراجعة لملف: Merged Manifestوهنا اكتشفت إن:
- الـ SDK فعلًا بيضيف Advertising ID Permission
- الإذن بيتضاف بشكل تلقائي أثناء الـ Build
مش كل حاجة بتكتبها في الكود هي اللي بتحدد النتيجة النهائية!
الحل: إزالة Advertising ID Permission نهائيًا ✅
بعد بحث شوية، لقيت حل فعال جدًا، وبيتم في خطوتين:1. حذف الـ Permission يدويًا من Manifest
XML:
<uses-permission
android:name="com.google.android.gms.permission.AD_ID"
tools:node="remove"/>
<meta-data
android:name="google_analytics_adid_collection_enabled"
android:value="false" /> - يمنع إضافة الـ Permission
- يقفل استخدام Advertising ID داخل Firebase
2. مراجعة Merged Manifest بعد التعديل
بعد كده لازم تعمل:- Rebuild للمشروع
- تراجع ملف Merged Manifest
الإذن اختفى تمامًا من الـ APK 🎉
ليه الموضوع ده مهم جدًا؟ 🔥
الإجابة ببساطة:1. التوافق مع سياسات Google Play
لو جاوبت غلط على سؤال زي Advertising ID، ممكن:- التطبيق يترفض ❌
- أو يتعرض لمشاكل قانونية
2. حماية خصوصية المستخدم
وجود Permission زي ده ممكن:- يسبب قلق للمستخدمين
- أو يخالف سياسات الخصوصية
3. تجنب مشاكل غير متوقعة
أي Permission زيادة = خطر محتمل ⚠️أهم نصيحة لأي Android Developer 💡
خلي بالك دايمًا من النقطة دي:عشان كده:مش كل Permission في التطبيق بيكون بإيدك… بعضهم بيجي من Libraries
- راجع دايمًا Merged Manifest
- افحص الـ APK النهائي قبل الرفع
- ما تعتمدش بس على الكود اللي كتبته
روابط مهمة 🔗
- التطبيق:
https://play.google.com/store/apps/details?id=dev.sayed.m - الريبو (Open Source):
https://github.com/ElsayedMagdy122/Zad-El-Momen
الخلاصة
اللي حصل ده درس مهم جدًا في عالم Android Development:- الـ SDKs ممكن تضيف Permissions بدون علمك
- لازم تراجع ناتج الـ Build بنفسك
- قراراتك في Play Console لازم تكون مبنية على التطبيق النهائي مش الكود بس
منقول عن المطور / السيد مجدى