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.
| Exposure | When iOS tells the app | What the app can do | What Otukan does |
|---|---|---|---|
| Screen recording | When capture starts and stops | Change what is drawn while it runs | Masks marked views for the whole recording |
| Display mirroring | When mirroring starts and stops | The same, for AirPlay and cable output | Treats it as capture and masks both screens |
| App switcher preview | Just before the scene loses focus | Replace the screen before the snapshot | Places a neutral cover over sensitive screens |
| Screenshot | After the image is saved | Respond to the event | Emits 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.