Yayın derlemenize yerel semboller ekleme

Varsayılan olarak, uygulamanızın yayın derlemelerinde yerel kod kitaplıkları kaldırılır. Bu kaldırma işlemi, uygulamanız tarafından kullanılan tüm yerel kitaplıklarda bulunan sembol tablosunun ve hata ayıklama bilgilerinin kaldırılmasından oluşur. Yerel kod kitaplıklarının kaldırılması, boyut açısından önemli ölçüde tasarruf sağlar. Ancak eksik bilgiler (ör. sınıf ve işlev adları) nedeniyle Google Play Console'da kilitlenmeleri teşhis etmek mümkün değildir. Kilitlenmelerin hatalarını ayıklamak için Play Console'da uygulamanıza bir hata ayıklama sembolleri dosyası eklemeniz gerekir.

Sembol dosyası yükleme

Google Play Console, yerel kilitlenmeleri Android vitals altında raporlar. Birkaç adımda uygulamanız için yerel hata simgeselleştirme dosyası oluşturup yükleyebilirsiniz. Bu dosya, üretimde uygulamanızda hata ayıklamanıza yardımcı olmak için Android vitals'da simgeselleştirilmiş yerel kilitlenme yığın izlemelerinin (sınıf ve işlev adlarını içeren) oluşturulmasını sağlar. Bu adımlar, projenizde kullanılan Android Gradle eklentisinin sürümüne ve Android App Bundle (önerilir) veya APK kullanıp kullanmadığınıza bağlı olarak değişir.

Android Gradle eklentisi 4.1 veya sonraki sürümleri

Projeniz Android App Bundle (AAB) derliyorsa uygulamanızı yayınladığınızda Play Console'a yüklenmesi için yerel hata simgeselleştirme dosyası dosyasını AAB'ye otomatik olarak ekleyecek şekilde derlemenizi yapılandırabilirsiniz. Bu dosyayı yayınlanan derlemelere eklemek için uygulamanızın build.gradle.kts dosyasına aşağıdakileri ekleyin:

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

Aşağıdakiler arasından hata ayıklama simgesi düzeyini seçin:

  • Play Console'un simgeleştirilmiş yığın izlemelerindeki işlev adlarını almak için SYMBOL_TABLE aracını kullanın. Bu seviyede mezartaşları desteklenir.
  • Play Console'un sembolleştirilmiş yığın izlemelerinde işlev adlarını, dosyaları ve satır numaralarını almak için FULL kullanın.

Projeniz APK derliyorsa hata simgeselleştirme dosyası dosyasını ayrı olarak oluşturmak için daha önce gösterilen android.buildTypes.release.ndk.debugSymbolLevel ayarını kullanın. Yerel hata ayıklama simgeleri dosyasını Google Play Console'a manuel olarak yükleyin (Bu işlem, yığın izlemelerinin kodunu göstermek için eşleme dosyası yüklemeye benzer). Android Gradle eklentisi, derleme işleminin bir parçası olarak bu dosyayı aşağıdaki proje konumuna çıkarır:

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

Bağımlılıklarınız yerel kitaplıklar içeriyorsa boyutun küçültülmesi için hata ayıklama bilgileri kaldırılmış olabilir. Bunu, info log düzeyinde bir derleme çalıştırıp debugSymbolLevel = { SYMBOL_TABLE | FULL } ayarını yaparak doğrulayabilirsiniz. Ardından, derleme çıktısında aşağıdaki satırı bulun:

Unable to extract native debug metadata from ... because the native debug metadata has already been stripped.

Android Gradle eklentisi 4.0 veya önceki sürümleri (ayrıca diğer derleme sistemleri)

Android Gradle eklentisi, derleme işleminin bir parçası olarak sadeleştirilmemiş kitaplıkların kopyasını proje dizininde saklar. Bu dizin yapısı aşağıdakine benzer:

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. Bu dizinin içeriğini zip dosyası olarak kaydedin:

    cd app/build/intermediates/cmake/universal/release/obj
    zip -r symbols.zip .
    
  2. symbols.zip dosyasını Google Play Console'a manuel olarak yükleyin.