Automatically include NativeAOT debug symbols in Android App Bundles for Google Play
Maintainer thường phản hồi trong vòng 1 ngày
Chưa có ai nhận issue này.
Đánh giá
- Độ khó
- 4/5
- Thời gian dự kiến
- 3-5 ngày
- Mức phù hợp với người mới
- 52/100
- Loại issue
- Tính năng
- Độ rõ ràng
- Đặc tả rõ ràng
- Mức độ hoạt động
- Sôi nổi
- Công nghệ
- android, csharp
- Lĩnh vực
- build-system, mobile
Hướng nghiên cứu
Start by tracing the Android App Bundle metadata packaging target referenced in the workaround, especially _BuildApkEmbed, and how Release NativeAOT output paths vary by ABI. Add automated coverage for symbol paths, inclusion, and matching build IDs, then confirm the resulting bundle is accepted by Play Console without the missing-symbol warning. The payload names no test files or implementation files.
Do mô hình lập chỉ mục viết ra từ nội dung của issue.
Mô tả
Android framework version
net11.0-android (Preview)
Affected platform version
Reported with .NET SDK 11.0.100-rc.2.26504.105 and Android workload 37.2.0-rc.2.84.
Description
Automatically include the generated NativeAOT debug symbols in Android App Bundles (.aab) so Google Play can use them for native crash reports without a custom MSBuild target.
This is a focused follow-up to the comment by @tipa in #8903. The reporter states that explicitly adding the generated symbols to the bundle removed the Play Console warning about missing native debug symbols.
The SDK should package the generated symbols under BUNDLE-METADATA/com.android.tools.build.debugsymbols/<ABI>/, with the name lib$(TargetName).so.dbg, for each ABI included in a Release NativeAOT bundle. The symbols must match the native library in the bundle. Users should not need to specify ABI paths or add a custom target.
Acceptance criteria:
- Release NativeAOT bundles include the generated app symbols for each packaged ABI.
- Packaged symbols have build IDs that match the corresponding native libraries.
- Add automated coverage for the bundle paths and symbol inclusion.
- Confirm that Play Console accepts the symbols without the missing-symbol warning for the NativeAOT app library.
The reporter checked clean builds, matching build IDs, and local ndk-stack source-line lookup. Production crash symbolication in Google Play and Mono were not tested. This issue covers the generated NativeAOT app library symbols; the broader native crash support request remains in #8903.
Steps to Reproduce
- Build a .NET 11 Android NativeAOT app in Release mode with
PublishAot=trueandAndroidPackageFormat=aab. - Upload the bundle to Google Play Console.
- Observe the warning about missing native debug symbols.
- Add the target below, rebuild, and upload the bundle. The reporter states that this removed the warning.
Did you find any workaround?
@tipa supplied this target for arm64-v8a and x86_64:
<Target Name="IncludePlayNativeSymbols" BeforeTargets="_BuildApkEmbed" Condition="'$(Configuration)' == 'Release' And '$(PublishAot)' == 'true' And '$(AndroidPackageFormat)' == 'aab'">
<ItemGroup>
<AndroidAppBundleMetaDataFile Include="com.android.tools.build.debugsymbols/arm64-v8a/lib$(TargetName).so.dbg:$(OutputPath)android-arm64/native/lib$(TargetName).dbg.so" />
<AndroidAppBundleMetaDataFile Include="com.android.tools.build.debugsymbols/x86_64/lib$(TargetName).so.dbg:$(OutputPath)android-x64/native/lib$(TargetName).dbg.so" />
</ItemGroup>
</Target>
Relevant log output
No build logs were supplied in the source comment. The Play Console warning quoted in #8903 is:
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.
- Ngôn ngữ chính
- C#
- Star
- 2.1k
- Fork
- 581
- Merge trung bình
- 1 ngày 17 giờ
- Pull request đã merge (30 ngày)
- 237
Chuẩn bị môi trường
- Không có Dockerfile hay tệp Docker Compose
- Có mẫu pull request
- Không có hướng dẫn đóng góp
Bắt đầu từ đâu
- Đọc hết issue, rồi đọc hướng dẫn đóng góp của dự án.
- Bình luận trên issue rằng bạn sẽ nhận — tránh hai người làm cùng một việc.
- Fork repository và làm thay đổi trên một nhánh.
- Mở pull request có tham chiếu số hiệu của issue.
Issue khác của dotnet/android
-
Area: App+Library Build
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 72/100
Maintainer thường phản hồi trong vòng 1 ngày
-
EditText.getText() isn't boundĐang mởArea: Mono.Android
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 65/100
dotnet/android#9192 · 4 bình luận · 1 reaction ·
Maintainer thường phản hồi trong vòng 1 ngày
-
agentic-workflows needs-triage
Độ khó 3/5 1-2 ngày Mức phù hợp với người mới 38/100
Maintainer thường phản hồi trong vòng 1 ngày
-
needs-triage
Độ khó 4/5 3-5 ngày Mức phù hợp với người mới 46/100
dotnet/android#13205 · 1 bình luận ·
Maintainer thường phản hồi trong vòng 1 ngày
-
needs-triage
Độ khó 4/5 3-5 ngày Mức phù hợp với người mới 52/100
Maintainer thường phản hồi trong vòng 1 ngày
Tất cả issue của dotnet/android
Issue tương tự
-
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 66/100
gavin-wolfe/wolfden#104 ·
Maintainer thường phản hồi trong vòng 1 ngày
-
[BUG] Still libmicrohttpd dependency is not removed properly from External-Dependency-Info.txt fileĐang mởtype/bug
Độ khó 1/5 Dưới một giờ Mức phù hợp với người mới 72/100
Maintainer thường phản hồi trong vòng 1 ngày
-
area:framework
Độ khó 1/5 1-3 giờ Mức phù hợp với người mới 72/100
nunit/docs#1262 · 3 bình luận ·
Maintainer thường phản hồi trong vòng 1 ngày
-
[辞書] かんそうりつ->乾燥率Đang mở辞書
Độ khó 1/5 Dưới một giờ Mức phù hợp với người mới 62/100
Maintainer thường phản hồi trong vòng 1 ngày
-
bug good first issue
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 76/100
thomhurst/TUnit#7201 · 1 bình luận ·
Maintainer thường phản hồi trong vòng 1 ngày