# Symbolication/Deobfuscation

Crash reports need symbolication (native stack traces) and, on Android, deobfuscation (ProGuard/R8 mapping) to be readable. The KMP library forwards crashes to the native Luciq SDK; symbolication and deobfuscation are handled by the **native** SDK and the Luciq dashboard.

### Android

* **ProGuard/R8**: Upload your mapping file when you upload a build to the Luciq dashboard (or configure your CI to do so). The dashboard uses it to deobfuscate stack traces.
* **NDK**: If you use NDK crash reporting, ensure native debug symbols (or symbol upload) are configured as required by the native Luciq Android SDK.

There is no KMP-specific API for mapping files; follow the [Luciq Android documentation](https://docs.luciq.ai/android/set-up-luciq-for-android/set-up-crash-reporting/deobfuscation-for-android) for your build setup.

### iOS

* **dSYM**: Upload dSYMs for your app so the dashboard can symbolicate iOS crash reports. This is usually done via the Luciq dashboard or your CI when you upload a build.

The KMP library does not change how symbolication works; it uses the native Luciq iOS SDK. Refer to the [Luciq iOS documentation](https://docs.luciq.ai/ios/setup-luciq-for-ios/setup-crash-reporting/symbolication) for dSYM upload and settings.
