---
title: "Manual Upload"
description: "Learn how to manually upload debug symbols for your Flutter applications."
url: https://docs.sentry.io/platforms/dart/guides/flutter/debug-symbols/manual-upload/
---

# Manual Upload for Flutter

If you choose not to use the Sentry Dart Plugin, you can manually upload debug symbols for your Flutter applications. This page provides instructions for different platforms.

## [iOS and macOS](https://docs.sentry.io/platforms/dart/guides/flutter/debug-symbols/manual-upload.md#ios-and-macos)

Sentry requires a dSYM upload to symbolicate your crash logs. The symbolication process unscrambles Apple's crash logs to reveal the function, file names, and line numbers of the crash.

[Learn how to upload the dSYM files](https://docs.sentry.io/platforms/apple/dsym.md)

## [Android](https://docs.sentry.io/platforms/dart/guides/flutter/debug-symbols/manual-upload.md#android)

For Android applications, you need to upload mapping files manually with the Sentry CLI.

[Learn how to upload Debug Information Files](https://docs.sentry.io/cli/dif.md#uploading-files)

## [Android NDK](https://docs.sentry.io/platforms/dart/guides/flutter/debug-symbols/manual-upload.md#android-ndk)

For native code crashes in Android applications, you need to upload ELF DWARF debug files.

[Learn how to upload Debug Information Files](https://docs.sentry.io/cli/dif.md#uploading-files)

If you're using a version of `sentry_flutter` earlier than 5.1, native symbolication on Android requires a specific configuration. Refer to [Troubleshooting](https://docs.sentry.io/platforms/dart/guides/flutter/troubleshooting.md#native-symbolication-on-android) for more information.

## [Web](https://docs.sentry.io/platforms/dart/guides/flutter/debug-symbols/manual-upload.md#web)

For web applications, you need to upload source maps to get readable stack traces.

[Learn how to upload Source Maps](https://docs.sentry.io/cli/releases.md#upload-source-maps)
