네이티브 디버그 심볼 추가하기
구글 플레이 콘솔은 Android vitals를 통해 네이티브 크래시 리포트를 보여줍니다. 그러나 릴리스 빌드에서는 심볼 테이블 같은 디버깅 정보가 제거(strip) 되기 때문에 리포트를 봐도 원인 분석하기가 어렵게 됩니다.
다행히 디버깅 정보를 포함시킬 수 있는 방법이 있는데요, 상황에 따라 세가지 다른 방법이 있습니다.
안드로이드 그레이들 플러그인(AGP) 4.0까지
so 파일을 플레이 콘솔에 직접 올려줘야 합니다. 번거롭기 때문에 지금까지 사용하지 않았는데, AGP 4.1부터 아래 내용처럼 간단해져서 이번에 적용했습니다.
AGP 4.1 이고 앱번들 사용
디버깅 정보를 포함시키는 방법이 추가됐습니다. build.gradle에 아래 내용을 추가합니다.
android.buildTypes.release.ndk.debugSymbolLevel = { SYMBOL_TABLE | FULL }
SYMBOL_TABLE은 함수 이름만, FULL은 파일 이름, 줄번호까지 포함합니다. 기본적으로는 FULL을 사용해야 겠지만, 디버그 정보 파일 크기에 300메가 제한이 있으므로, 너무 큰 경우에는 SYMBOL_TABLE을 사용하면 됩니다.
그런데 실제로 작성해 보니 문법이 약간 다릅니다. 아래처럼 등호 없이 문자열을 사용해야 합니다.
buildTypes {
release {
...
ndk {
debugSymbolLevel 'FULL'
}
}
이렇게 하면 빌드하면 아래처럼 aab 파일 안에 디버그 정보가 들어가 있습니다.

AGP 4.1 이고 apk 사용
앱번들일 때처럼 build.gradle을 설정하고, 직접 플레이 콘솔에 업로드해야 합니다. 필요한 파일은 아래 위치에 자동으로 생성됩니다.
app/build/outputs/native-debug-symbols/variant-name/native-debug-symbols.zip