screen recording entitlements for MacOS

My app records the screen to use the audio for audio analysis for a music visualization. The app works perfectly in production but when uploaded to Transporter is rejected as below. What is the correct entitlement to use as the entitlement I am using seems deprecated.

Validation failed (409) Invalid Code Signing Entitlements. Your application bundle's signature contains code signing entitlements that are not supported on macOS. Specifically, key 'com.apple.security.screen-capture' in 'com.boxedpandora.pulse.pkg/Payload/PuLsE.app/Contents/MacOS/PuLsE' is not supported. (ID: a1a436f5-925d-43bc-908d-0761064d589b)

Many thanks for any input provided!

AFAICT com.apple.security.screen-capture isn’t a meaningful entitlement. It certainly doesn’t show up anywhere in our documentation.

The reason your app works at all is that all the entitlements in the com.apple.security. namespace are unrestricted. As far as macOS is concerned, any code can use them at any time. And that including entitlements that don’t currently exist [1]. I talk about this more in TN3125 Inside Code Signing: Provisioning Profiles.

However, this story changes when you deploy to the Mac App Store. Its ingestion process checks that you’re using these unrestricted entitlements correctly. It doesn’t recognise com.apple.security.screen-capture, and hence this failure.

There is a managed capability in this space, granting you access to the com.apple.developer.persistent-content-capture entitlement entitlement. Is that what you were aiming for? If so, that’s a managed capability, meaning that you must apply for and be granted access to it.

But, if your app works fine right now, you should just be able to remove com.apple.security.screen-capture and move on with your life.

Share and Enjoy

Quinn “The Eskimo!” @ Developer Technical Support @ Apple
let myEmail = "eskimo" + "1" + "@" + "apple.com"

[1] This allows us to introduce new entitlements which you can use in apps that run on older systems.

screen recording entitlements for MacOS
 
 
Q