Blocking screenshots and recordings in app

Layperson here. Creative consultant on app and am wondering what, if any, solutions are available for blocking screen caps or recordings in app. I’ve seen in Netflix and Hulu they are able to block captures and am looking for insight as to how this is accomplished.

Thank you for your time!

It is not possible to prevent screenshots and screen recording on iOS.
And yet, ScreenShieldKit seems to have achieved this!

That suggests, at the least, that it is very difficult, and there is no "simple" coding solution.

I suggest that you investigate ScreenShieldKit, and see if their pricing model suits your needs (depending on how important this feature is, for your app).

I believe Netflix / Hulu are using some sort of DRM video protection that isn't easily accessible (but would love to hear otherwise).

That said, most of the solutions I found involve checking the UIScreen.main.isCaptured property which tells you if a screen recording is occurring or not which you can then use to blank out the screen, etc...

The tricky part is capturing the various states:

  1. When recording happens when the app is running, you can get notified via UIScreen with UIScreen.main.addObserver(self, forKeyPath: "captured", options: .new, context: nil)
  2. If recording was already occurring when opening your app you should check the isCaptured property in sceneWillEnterForeground

For whatever reason the first frame will show up in the screen recording (because there's no e.g. willCapture event) but happy to hear if there's a solution for that issue.

If you play a DRM enabled movie/sound the system blocks screenshots and screen recording

Blocking screenshots and recordings in app
 
 
Q