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
debug-files upload --type elf: accept a directory of .so files (walk recursively, key by GNU build-id) #69
debug-files upload --type elf only accepts AGP's pre-built native-debug-symbols.zip; a directory is rejected (README: "a directory is rejected; the Gradle plugin zips the intermediates folder first"). Please let it take a directory (or several paths) and walk it recursively for ELF libraries, the way --type proguard, dsym and pdb already scan directories.
Why
bugsee-android-gradle-plugin#10 wants to upload native symbols from the unstripped libraries in build/intermediates/merged_native_libs/<variant>/**/lib/<abi>/*.so (as Sentry and Firebase Crashlytics do), independent of ndk.debugSymbolLevel. That removes the dependence on AGP's native-debug-symbols.zip, which for FULL also inflates the AAB (55 MB → 181 MB for a React Native 0.87 app).
Today the plugin would have to zip those libraries itself on every build; with React Native that means re-compressing ~100+ MB (libreactnative.so ships unstripped from Maven) just to hand it to the CLI, which then unpacks it again. Passing the directory avoids the pack/unpack round trip.
Proposed
Accept a directory (and/or multiple path arguments) for --type elf; walk recursively.
Reuse the existing per-entry logic: built-in names .so, .so.dbg, .so.sym (+ --extension), GNU build-id required (warn and skip otherwise), one upload per build-id preferring DWARF, then symbol table, then the larger file.
Keep zip input working unchanged.
Dedup against the server by build-id as today, with --force still replacing a poorer symbol for the same build-id (see bugsee-android-gradle-plugin#9).
Nice to have
Skip re-reading/hashing libraries the server already holds before sending bytes (e.g. a build-id existence check ahead of the PUT), so unchanged prebuilt libraries (libreactnative.so, libc++_shared.so, libfbjni.so) cost one cheap request per build rather than a full transfer.
Plugin side
Once released, the plugin raises its CLI floor to that version and prefers the directory path, keeping native-debug-symbols.zip as a fallback.
Activity
feat(debug-files): --type elf accepts directories of .so files (#70)