تتم تلقائيًا إزالة مكتبات الرموز البرمجية الأصلية في إصدارات التطبيق. وتتضمّن هذه الإزالة إزالة جدول الرموز البرمجية ومعلومات تصحيح الأخطاء الواردة في أي مكتبات أصلية يستخدمها تطبيقك. تؤدي إزالة مكتبات الرموز البرمجية الأصلية إلى توفير مساحة كبيرة، ولكن يتعذّر تشخيص الأعطال على Google Play Console بسبب المعلومات الناقصة (مثل أسماء الفئات والدوال). لتصحيح أخطاء الأعطال، يجب تضمين ملف تصحيح أخطاء الرموز البرمجية مع تطبيقك في Play Console.
تحميل ملف رموز برمجية
يسجِّل Google Play Console الأعطال الأصلية ضمن مؤشرات الأداء الرئيسية في Android. باتّباع بضع خطوات، يمكنك إنشاء ملف رموز برمجية أصلية لتصحيح الأخطاء وتحميله لتطبيقك. يتيح هذا الملف تتبُّع تتبعات التكديس للأعطال الأصلية التي تم ترميزها (والتي تتضمّن أسماء الفئات والدوال) في "مؤشرات الأداء الرئيسية في Android" لمساعدتك في تصحيح أخطاء تطبيقك في مرحلة الإنتاج. تختلف هذه الخطوات حسب إصدار المكوّن الإضافي لنظام Gradle المتوافق مع Android المستخدَم في مشروعك وما إذا كنت تستخدم مجموعة حزمات تطبيق Android (مستحسَنة) أو حزمة APK.
الإصدار 4.1 من المكوّن الإضافي لنظام Gradle المتوافق مع Android والإصدارات الأحدث
إذا كان مشروعك ينشئ مجموعة حزمات تطبيق Android (AAB)، يمكنك ضبط عملية التصميم لتضمين تصحيح الأخطاء في ملف الترميز الأصلية تلقائيًا في حزمة AAB، وبالتالي يتم تحميله إلى Play Console عند نشر تطبيقك. لتضمين هذا الملف في بنية الإصدار، أضِف ما يلي إلى ملف build.gradle.kts الخاص بتطبيقك:
android.buildTypes.release.ndk.debugSymbolLevel = { SYMBOL_TABLE | FULL }
اختَر مستوى رموز تصحيح الأخطاء من الخيارات التالية:
- استخدِم
SYMBOL_TABLEللحصول على أسماء الدوال في تتبعات التكديس التي تم ترميزها في Play Console. يتيح هذا المستوى استخدام شواهد القبور. - استخدِم
FULLللحصول على أسماء الدوال والملفات وأرقام الأسطر في تتبعات التكديس التي تم ترميزها في Play Console.
إذا كان مشروعك ينشئ حزمة APK، استخدِم إعداد android.buildTypes.release.ndk.debugSymbolLevel الموضَّح سابقًا لإنشاء ملف رموز تصحيح الأخطاء الأصلية بشكل منفصل. حمِّل يدويًا ملف رموز تصحيح الأخطاء الأصلية إلى Google Play Console (تشبه العملية تحميل ملف ربط لإزالة تشويش تتبعات التكديس).
وكجزء من عملية التصميم، يعمل المكوّن إضافي لنظام Gradle المتوافق مع Android على إخراج هذا الملف في موقع المشروع التالي:
app/build/outputs/native-debug-symbols/<var>variant-name</var>/native-debug-symbols.zip
إذا كانت التبعيات تحتوي على مكتبات أصلية، من المرجّح أن تتم إزالة معلومات تصحيح الأخطاء لتقليل الحجم. يمكنك التحقّق من ذلك من خلال تنفيذ عملية تصميم باستخدام مستوى سجلّ info وضبط debugSymbolLevel = { SYMBOL_TABLE | FULL }.
بعد ذلك، ابحث عن السطر التالي في ناتج عملية التصميم:
Unable to extract native debug metadata from ... because the native debug metadata has already been stripped.
الإصدار 4.0 من المكوّن الإضافي لنظام Gradle المتوافق مع Android والإصدارات الأقدم (وأنظمة التصميم الأخرى)
كجزء من عملية التصميم، يحتفظ المكوّن الإضافي لنظام Gradle المتوافق مع Android بنسخة من المكتبات التي لم تتم إزالتها في دليل المشروع. تكون بنية هذا الدليل مشابهة لما يلي:
app/build/intermediates/cmake/universal/release/obj/
├── armeabi-v7a/
│ ├── libgameengine.so
│ ├── libothercode.so
│ └── libvideocodec.so
├── arm64-v8a/
│ ├── libgameengine.so
│ ├── libothercode.so
│ └── libvideocodec.so
├── x86/
│ ├── libgameengine.so
│ ├── libothercode.so
│ └── libvideocodec.so
└── x86_64/
├── libgameengine.so
├── libothercode.so
└── libvideocodec.so
اضغط محتوى هذا الدليل:
cd app/build/intermediates/cmake/universal/release/obj zip -r symbols.zip .حمِّل يدويًا ملف
symbols.zipإلى Google Play Console.