По умолчанию библиотеки собственного кода удаляются в сборках релиза вашего приложения. Это удаление состоит из удаления таблицы символов и отладочной информации, содержащейся в любых собственных библиотеках, используемых вашим приложением. Удаление библиотек собственного кода приводит к значительной экономии размера; однако невозможно диагностировать сбои в Google Play Console из-за отсутствующей информации (такой как имена классов и функций). Для отладки сбоев необходимо включить файл отладочных символов в ваше приложение в Play Console.
Загрузить файл символов
Google Play Console сообщает о собственных сбоях в Android Vitals . За несколько шагов вы можете сгенерировать и загрузить файл собственных отладочных символов для своего приложения. Этот файл включает символизированные собственные трассировки стека сбоев (включая имена классов и функций) в Android Vitals, чтобы помочь вам отладить ваше приложение в производстве. Эти шаги различаются в зависимости от версии плагина 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 Console. Этот уровень поддерживает tombstones . - Используйте
FULL
для получения имен функций, файлов и номеров строк в символьных трассировках стека Play Console.
Если ваш проект собирает APK, используйте настройку android.buildTypes.release.ndk.debugSymbolLevel
, показанную ранее, чтобы сгенерировать файл собственных отладочных символов отдельно. Вручную загрузите файл собственных отладочных символов в Google Play Console (процесс аналогичен загрузке файла сопоставления для деобфускации трассировок стека ). В рамках процесса сборки плагин 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
Заархивируйте содержимое этого каталога:
cd app/build/intermediates/cmake/universal/release/obj zip -r symbols.zip .
Вручную загрузите файл
symbols.zip
в Google Play Console.