---
title: "Snapshots"
description: "Set up visual regression testing for Kotlin Multiplatform apps using Android and Apple snapshot workflows."
url: https://docs.sentry.io/platforms/kotlin/guides/kotlin-multiplatform/snapshots/
---

# Set Up Snapshots | Sentry for Kotlin Multiplatform

This feature is currently in Beta. Beta features are still in progress and may have bugs. We recognize the irony.

[Snapshots](https://docs.sentry.io/product/snapshots.md) compares images of your app's UI across changes to help catch visual regressions. For Kotlin Multiplatform apps, generate images using tooling for your app's UI, then upload them to Sentry.

## [Step 1: Generate Images](https://docs.sentry.io/platforms/kotlin/guides/kotlin-multiplatform/snapshots.md#step-1-generate-images)

Choose the workflow that matches the UI you want to test:

| App UI                               | Workflow                                                                                                                                                                                   |
| ------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
| Android views or Jetpack Compose     | Follow the [Android Snapshots guide](https://docs.sentry.io/platforms/android/snapshots.md) to generate images from previews or existing Paparazzi or Roborazzi tests.                     |
| Apple UI, including SwiftUI previews | Follow the [Apple Snapshots guide](https://docs.sentry.io/platforms/apple/snapshots.md) to generate images with SnapshotPreviews, swift-snapshot-testing, or another image-producing tool. |

For the Android workflow, configure the **Sentry Android Gradle Plugin** in the Android application module. The KMP Gradle plugin does not provide the `sentry.snapshots` configuration.

## [Step 2: Test Locally](https://docs.sentry.io/platforms/kotlin/guides/kotlin-multiplatform/snapshots.md#step-2-test-locally)

Generate images locally with your chosen tool, then follow [Uploading Snapshots](https://docs.sentry.io/product/snapshots/uploading-snapshots.md) to upload the generated image directory with `sentry-cli`, or use the upload task described in the Android guide. The shared guide covers image formats, stable filenames, and optional metadata.

Keep images for different platforms or rendering configurations in separate paths so they have distinct identities when uploaded together. Use the same rendering environment for baseline and subsequent images to avoid unrelated visual differences.

## [Step 3: Integrate Into CI](https://docs.sentry.io/platforms/kotlin/guides/kotlin-multiplatform/snapshots.md#step-3-integrate-into-ci)

Generate fresh images and upload them on pull requests and your base branch. Follow [Integrating Into CI](https://docs.sentry.io/product/snapshots/integrating-into-ci.md) for the shared workflow and GitHub checks.
