You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
Support for Play Store "Native Crash Support" #8903
I'm uploading app bundles, which were built using Release mode, to the Play Store.
On the Play Store developer console I'm getting the warning
This App Bundle contains native code, and you've not uploaded debug symbols. We recommend you upload a symbol file to make your crashes and ANRs easier to analyze and debug.
I couldn't find a GitHub issue tracking this, and was wondering what I could do to fix this (the forum post was from 2021 - it is 2024 now, is there a new recommendation?).
Steps to Reproduce
Build an app in release mode
Upload it to the Play Store
Did you find any workaround?
No response
Relevant log output
No response
Reacted by Stefan Tucker, snailb, bernardes-g, MiaJohnson, Kelly Ethridge, Justin Caldicott, Leonard Barbu, Yumi Masuri, Erik Hofseth, Ieuan Walker and 2 more
#5304 suggests that a mappings.txt should exist in the generated AAB file, but when I look in the AAB generated on Azure DevOps, I couldn't find it.
I found out that mappings.txt is created when AndroidCreateProguardMappingFile is enabled, optionally when by setting AndroidLinkTool to r8.
However, this does not result in a file with debug symbols, as the warning asks for.
#5378 specifically asks for these symbol files, and then the conversation moves towards mappings.txt.
There is something mentioned around breakpad at https://learn.microsoft.com/en-us/appcenter/diagnostics/unmanaged-code-crash-support (this page will likely be removed next year with the discontinuation of AppCenter), and is not incorporated in the MAUI or .NET for Android documentation. It is not clear if breakpad is needed for Android applications and it is not clear how to set it up in Visual Studio.
Googles documentation about Deobfuscate or symbolicate crash stack traces suggests that for Java code, a deobfuscation mappings file might be sufficient, and that for native code, debug symbols are needed. What I don't understand is how .NET for Android code can be classified after it has undergone the optimization step.
@jonathanpeppers it is not clear to me whether separate debug symbol files are needed after the mappings.txt files are uploaded. Are they needed to get clean stacktraces, and if so, what can I do to generate the debug symbols?
Reacted by Prateek Mahendrakar and Artem Marakhovskyi
For my .NET 11 NativeAOT app, explicitly packaging the generated symbols removed the warning after uploading to Play Console:
<TargetName="IncludePlayNativeSymbols"BeforeTargets="_BuildApkEmbed"Condition="'$(Configuration)' == 'Release' And '$(PublishAot)' == 'true' And '$(AndroidPackageFormat)' == 'aab'">
<ItemGroup>
<AndroidAppBundleMetaDataFileInclude="com.android.tools.build.debugsymbols/arm64-v8a/lib$(TargetName).so.dbg:$(OutputPath)android-arm64/native/lib$(TargetName).dbg.so" />
<AndroidAppBundleMetaDataFileInclude="com.android.tools.build.debugsymbols/x86_64/lib$(TargetName).so.dbg:$(OutputPath)android-x64/native/lib$(TargetName).dbg.so" />
</ItemGroup>
</Target>
Tested with SDK 11.0.100-rc.2.26504.105 / Android workload 37.2.0-rc.2.84. Clean builds, matching build IDs, and local ndk-stack source-line lookup passed. I haven’t tested Mono or production crash symbolication in Play.
Is this an appropriate workaround, and could the SDK package these symbols automatically?
Activity
hansmbakker commentedon Apr 25, 2024
This stackoverflow post asks the same question.
hansmbakker commentedon Apr 25, 2024
#5304 suggests that amappings.txtshould exist in the generated AAB file, but when I look in the AAB generated on Azure DevOps, I couldn't find it.I found out that
mappings.txtis created whenAndroidCreateProguardMappingFileis enabled, optionally when by settingAndroidLinkTooltor8.However, this does not result in a file with debug symbols, as the warning asks for.
#5378 specifically asks for these symbol files, and then the conversation moves towards
mappings.txt.There is something mentioned around breakpad at https://learn.microsoft.com/en-us/appcenter/diagnostics/unmanaged-code-crash-support (this page will likely be removed next year with the discontinuation of AppCenter), and is not incorporated in the MAUI or .NET for Android documentation. It is not clear if breakpad is needed for Android applications and it is not clear how to set it up in Visual Studio.
Googles documentation about Deobfuscate or symbolicate crash stack traces suggests that for Java code, a deobfuscation mappings file might be sufficient, and that for native code, debug symbols are needed. What I don't understand is how .NET for Android code can be classified after it has undergone the optimization step.
@jonathanpeppers it is not clear to me whether separate debug symbol files are needed after the mappings.txt files are uploaded. Are they needed to get clean stacktraces, and if so, what can I do to generate the debug symbols?
IeuanWalker commentedon Apr 23, 2025
@hansmbakker did you get anywhere with this in the end?
hansmbakker commentedon Apr 24, 2025
No, we ended up using firebase crashlytics.
tipa commentedon Oct 19, 2026
For my .NET 11 NativeAOT app, explicitly packaging the generated symbols removed the warning after uploading to Play Console:
Tested with SDK
11.0.100-rc.2.26504.105/ Android workload37.2.0-rc.2.84. Clean builds, matching build IDs, and localndk-stacksource-line lookup passed. I haven’t tested Mono or production crash symbolication in Play.Is this an appropriate workaround, and could the SDK package these symbols automatically?
jonathanpeppers commentedon Oct 19, 2026
Filed an issue, thanks ^^