نمادهای بومی را در ساخت نسخه خود بگنجانید

به‌طور پیش‌فرض، کتابخانه‌های کد بومی در نسخه‌های انتشار برنامه شما حذف می‌شوند. این حذف شامل حذف جدول نمادها و اشکال زدایی اطلاعات موجود در کتابخانه های بومی مورد استفاده برنامه شما است. حذف کتابخانه های کد بومی منجر به صرفه جویی قابل توجهی در اندازه می شود. با این حال، تشخیص خرابی در کنسول Google Play به دلیل اطلاعات از دست رفته (مانند نام کلاس و عملکرد) غیرممکن است. برای رفع اشکال خرابی‌ها، باید فایل نمادهای اشکال‌زدایی را با برنامه خود در Play Console اضافه کنید.

فایل نمادها را آپلود کنید

کنسول Google Play خرابی های بومی تحت حیاتی اندروید را گزارش می کند. با چند مرحله، می توانید یک فایل نمادهای اشکال زدایی بومی برای برنامه خود ایجاد و آپلود کنید. این فایل ردیابی پشته تصادف بومی نمادین (شامل نام کلاس و توابع) را در حیاتی اندروید فعال می‌کند تا به شما کمک کند برنامه خود را در مرحله تولید اشکال‌زدایی کنید. این مراحل بسته به نسخه پلاگین Android Gradle مورد استفاده در پروژه شما و اینکه آیا از Android App Bundle (توصیه می شود) یا APK استفاده می کنید، متفاوت است.

پلاگین Android Gradle نسخه 4.1 یا بالاتر

اگر پروژه شما یک Android App Bundle (AAB) می‌سازد، می‌توانید بیلد خود را طوری پیکربندی کنید که به طور خودکار فایل نمادهای اشکال زدایی بومی را در AAB قرار دهد تا زمانی که برنامه خود را منتشر می‌کنید در Play Console آپلود شود. برای گنجاندن این فایل در نسخه‌های انتشار، موارد زیر را به فایل build.gradle.kts برنامه خود اضافه کنید:

android.buildTypes.release.ndk.debugSymbolLevel = { SYMBOL_TABLE | FULL }

سطح نماد اشکال زدایی را از موارد زیر انتخاب کنید:

  • از SYMBOL_TABLE برای دریافت نام توابع در ردپای نمادین پشته کنسول Play استفاده کنید. این سطح از سنگ قبرها پشتیبانی می کند.
  • از FULL برای دریافت نام توابع، فایل‌ها و شماره خطوط در ردپای نمادین پشته کنسول Play استفاده کنید.

اگر پروژه شما یک APK می‌سازد، از تنظیم android.buildTypes.release.ndk.debugSymbolLevel که قبلا نشان داده شده بود استفاده کنید تا فایل نمادهای اشکال زدایی بومی را به طور جداگانه ایجاد کنید. فایل نمادهای اشکال زدایی بومی را به صورت دستی در کنسول Google Play آپلود کنید (فرآیند مشابه آپلود یک فایل نقشه برداری برای رفع ابهام از ردپای پشته است). به عنوان بخشی از فرآیند ساخت، افزونه Android Gradle این فایل را در محل پروژه زیر خروجی می‌دهد:

app/build/outputs/native-debug-symbols/<var>variant-name</var>/native-debug-symbols.zip

پلاگین Android Gradle نسخه 4.0 یا بالاتر (و سایر سیستم های ساخت)

به عنوان بخشی از فرآیند ساخت، پلاگین Android Gradle یک کپی از کتابخانه‌های جدا نشده را در فهرست پروژه نگه می‌دارد. این ساختار دایرکتوری شبیه به زیر است:

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
  1. محتویات این دایرکتوری را فشرده کنید:

    cd app/build/intermediates/cmake/universal/release/obj
    zip -r symbols.zip .
    
  2. فایل symbols.zip را به صورت دستی در کنسول Google Play آپلود کنید .