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_TABLEaracı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
FULLkullanı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
Bu dizinin içeriğini zip dosyası olarak kaydedin:
cd app/build/intermediates/cmake/universal/release/obj zip -r symbols.zip .symbols.zipdosyasını Google Play Console'a manuel olarak yükleyin.