diff --git a/docs/PLAY_RELEASE_CHECKLIST.md b/docs/PLAY_RELEASE_CHECKLIST.md index 71b97fe..959e7ae 100644 --- a/docs/PLAY_RELEASE_CHECKLIST.md +++ b/docs/PLAY_RELEASE_CHECKLIST.md @@ -46,6 +46,26 @@ the rest are things you must do in the Play Console / with your own accounts. exactly the permission set listed in step 5 — **no `INTERNET`**, so "nothing leaves the device" holds in the shipped artefact, not just in the source manifest. - [ ] Upload the **`.aab`** (not the APK) to the Play Console. + ⚠️ **Expect a native-debug-symbols warning here, and ignore it.** Play scans the bundle, finds + `base/lib//libandroidx.graphics.path.so`, and reports *"This App Bundle contains native + code, and you've not uploaded debug symbols"*. It is a recommendation, not an error: it does + not block the upload, review or rollout. + - That one library (4 ABIs, ~37 KB total) is **not** this project's code — it arrives + transitively through `androidx.compose.ui:ui-graphics` → + `androidx.graphics:graphics-path:1.0.1`. The project has no `ndk` / `externalNativeBuild` / + `jniLibs` config and no native sources at all. + - There is nothing to upload: the published `graphics-path-1.0.1.aar` ships **stripped** libs + (`symtab=0`, no `.debug_*` sections, no symbol entries anywhere in the AAR), and the + commonly-suggested fix does not apply — with `ndk.debugSymbolLevel = "FULL"` the build + succeeds but produces no `app/build/outputs/native-debug-symbols/` output and adds nothing + to the bundle, because AGP only packages symbols for native code it builds itself. + - Excluding the lib (`packaging { jniLibs { excludes += "**/libandroidx.graphics.path.so" } }`) + would silence the warning but risks `UnsatisfiedLinkError` inside Compose's path handling, + for a 37 KB saving. Not worth it. + - What it actually costs: symbolication of frames *inside that Compose helper*. Kotlin/Java + crashes are unaffected — the R8 mapping rides inside the bundle + (`BUNDLE-METADATA/com.android.tools.build.obfuscation/proguard.map`), so Play deobfuscates + them automatically. - [ ] Keep `app/build/outputs/mapping/release/mapping.txt` for every release so you can de-obfuscate crash reports (upload it under *Release > App bundle explorer*).