Application security feature

iOS screen capture protection

Otukan reduces iOS screen exposure: it masks sensitive views during recording and mirroring, hides app switcher previews and reports screenshots.

  • iOS
Recorded account screens is met at the capture-aware views boundary before it reaches the appRecorded account screensCapture-aware viewsYour app
  • Three exposures, three answers

    Recording and mirroring are handled while they happen, app switcher previews before they are taken, and screenshots through a signal after the fact.

  • Only the screens that matter

    You mark the views holding card numbers, codes and records; the rest of the app keeps its normal look and behaviour.

  • Accessible by design

    Masking is tested with VoiceOver, Dynamic Type and Switch Control, so protection never locks out the people who rely on them.

iOS screen exposures Otukan handles

Pick an exposure to see what iOS makes visible, what Otukan does in the app and what your team learns.

Screen recording

  1. Detect

    Otukan follows the capture state iOS reports for each scene and notices when a recording starts or stops.

  2. Respond

    Views you mark are masked for as long as the recording runs and restored when it ends.

  3. Report

    A capture event with the affected screen reaches your backend or analytics.

AirPlay and cable mirroring

  1. Detect

    Mirroring to another display changes the same capture state, and Otukan treats it as an active capture.

  2. Respond

    Sensitive views stay masked on both the device and the external screen.

  3. Report

    Your team can tell mirroring sessions apart from ordinary use.

App switcher preview

  1. Detect

    Otukan reacts as the scene is about to lose focus, before iOS takes its snapshot for the app switcher.

  2. Respond

    A neutral cover replaces the sensitive screen, so the stored preview shows nothing private.

  3. Report

    No event is needed; the preview simply never contains the data.

Screenshot taken

  1. Detect

    iOS notifies the app once a screenshot has been saved, and Otukan picks up that notification.

  2. Respond

    Your policy can warn the user, expire the code on screen or log the event for review.

  3. Report

    A screenshot signal names the screen, so your server can invalidate what was shown.

What Otukan iOS screen protection includes

Each control matches a different iOS mechanism and a different point in time.

  • Capture-state masking

    Masks the views you choose while iOS reports recording or mirroring, following each iPad window on its own.

  • Switcher preview cover

    Places a neutral cover over sensitive screens before the system snapshot, per scene on iPad.

  • Screenshot signal

    Turns the system screenshot notification into an event your backend can act on, such as revoking a displayed code.

  • One setting across UI layers

    Marks and masks screens built in UIKit, SwiftUI, Flutter or React Native, with a blur, a brand cover or a short message per screen.

How it works

  1. Mark the screens

    Name the views that show card data, one-time codes, balances or personal records.

  2. Choose the behaviour

    Decide per screen what masking looks like and what a screenshot should trigger.

  3. Protect the build

    Protection slots into how you build and release today, and you keep signing the app yourself.

  4. Test with real users in mind

    Accept each screen with recording, mirroring, multitasking and assistive technologies on physical devices.

Free for app publishers

Check your app's exposure

A passive review of your published app by an Otukan engineer. No files, no access to your systems. Findings go by email to the verified publisher.

You finish the request on the next page.

Otukan reduces three iOS screen exposures, each in the way iOS allows. While a screen recording or display mirroring session runs, it masks the views you mark as sensitive. Before iOS stores the app switcher preview, it covers those screens. When a user takes a screenshot, iOS informs the app afterwards, and Otukan turns that into a signal your backend can act on, for example by expiring a one-time code. iOS offers no supported way to refuse a screenshot, and no app can see a camera pointed at the display, so Otukan masks what iOS lets an app mask and turns the rest into a signal.

For screen exposure on both mobile platforms, see mobile app screen capture protection.

Screenshots, recordings and app previews

The three exposures look alike to a user, but iOS handles them differently, and so does Otukan.

ExposureWhen iOS tells the appWhat the app can doWhat Otukan does
Screen recordingWhen capture starts and stopsChange what is drawn while it runsMasks marked views for the whole recording
Display mirroringWhen mirroring starts and stopsThe same, for AirPlay and cable outputTreats it as capture and masks both screens
App switcher previewJust before the scene loses focusReplace the screen before the snapshotPlaces a neutral cover over sensitive screens
ScreenshotAfter the image is savedRespond to the eventEmits a signal naming the screen

Recording is the exposure that matters most for fraud. Remote-assistance scams often ask a victim to share their screen while they open the banking app, and masking keeps balances, card numbers and codes out of that stream. The app switcher preview matters for shared and lost devices, since it survives until the app is next opened.

Notification timing and supported UI behaviour

Event timing

Capture state is reported per scene, so on iPad an app with two windows can have one on an external display and one not. Otukan follows the state for each scene separately. The screenshot notification arrives after the image is saved, so Otukan’s response targets what the image is worth: the code on screen expires, the user is warned, or your fraud team gets the record.

UIKit, SwiftUI and frameworks

Otukan masks views in UIKit and SwiftUI screens and in Flutter and React Native screens on iOS. You choose the mask per screen: a blur, a solid cover with your brand colour, or a short message such as “Hidden during screen recording”. The mask appears when capture begins and disappears when it ends, with no restart.

Notifications from your app

Push notification text is drawn by the system, not by your app, so in-app masking cannot reach it. Keep one-time codes and balances out of the visible payload, or fill them in a notification service extension after unlock.

Sensitive-screen UX and accessibility validation

Designing the masked state

A user who starts a recording for a harmless reason, such as a tutorial, should understand what happened. Say why the content is hidden, keep navigation working and never end the session because a recording started. Reserve stronger responses for screenshot events on screens where the value can be revoked. A one-time code that expires the moment a screenshot is reported loses its worth to whoever receives the image, while the genuine user simply requests a new one.

Accessibility checks

Masking must not remove the accessibility information assistive technologies depend on. Otukan accepts each protected screen with:

  • VoiceOver reading labels and values in the expected order, with and without an active recording.
  • Switch Control reaching every action on the masked screen.
  • The largest Dynamic Type sizes, so the mask still covers text that has grown.
  • Reduce Motion, so any transition into the masked state stays calm.

Screen-by-screen acceptance

For each marked screen, reproduce recording, mirroring, a switcher preview and a screenshot on physical devices with the distribution-signed build, then repeat the journey without capture and confirm nothing is hidden. Regression covers install, update, sign-in and the screen’s own flow, with versions, results and the reviewer recorded. For release checklists, see iOS app security guides.

Every iOS control Otukan offers is listed on iOS app security. Want to know what your live App Store version exposes today? Request a free App Exposure Check.

Common questions

  • Can an iOS app block screenshots?

    iOS does not give apps a supported way to refuse a screenshot, and it tells the app only after the image is saved. Otukan therefore treats screenshots as an event to respond to: expire the one-time code on screen, warn the user, or record it for your fraud team. Recording and mirroring are different, because iOS reports them while they run, and Otukan masks sensitive views for their whole duration.

  • Does masking affect VoiceOver users?

    No. Otukan masking hides visual content from a capture while keeping the accessibility labels and focus order VoiceOver reads. Screens are checked with VoiceOver, Switch Control and large Dynamic Type sizes, because a protection that locks out assistive technology users creates a support and legal problem of its own.

  • What about a camera pointed at the screen?

    No app can see a second device filming it. Screen capture protection closes the software routes iOS exposes: recording, mirroring and the app switcher preview. For values a photo could steal, such as one-time codes, short lifetimes and server-side revocation after a screenshot signal limit what a captured image is worth.

  • Do push notifications leak sensitive data too?

    They can, because notification text appears on the lock screen and in any recording running at the time. Keep sensitive values out of the visible payload, or fetch and fill them in a notification service extension only after the device is unlocked. This sits outside Otukan's in-app masking and is worth reviewing alongside it.

On the mobile engineering team?

How protection fits your build, signing and release, platform by platform.

Keep sensitive screens off the record

Tell us which screens show card data, one-time codes or personal records, whether the app uses UIKit, SwiftUI or a cross-platform framework, and whether it runs on iPad in several windows. Screenshots of the screens themselves are not needed, and we never ask for source code, IPA files, signing certificates or production credentials.

Or request a technical demo