Clarification on Accessibility and Input Monitoring APIs for App Store Apps

Hello,

I'm seeking some clarification regarding the use of accessibility and input monitoring APIs in sandboxed apps that are distributed through the App Store.

I understand that accessibility permissions are generally restricted for App Store apps. However, I've seen several recently released apps request these permissions directly upon first launch. I'm aware that apps submitted prior to 2012 may have legacy access to certain APIs, but the ones I'm referring to appear to be recent - within the past year.

While it's possible these apps were approved despite the restrictions, I want to make sure I'm not overlooking something. I also came across a recent discussion on this topic, and one post in particular stood out: Link

I’d really appreciate some clarification on what's officially allowed. Specifically:

  1. Are accessibility permissions ever allowed? If so, under what circumstances?

  2. Is input monitoring permitted for apps on the App Store? (The referenced post says yes, but since it's from 2022, I just want to confirm)

  3. The linked post suggests that event generation might be allowed on the App Store, though the author hadn’t explored that privilege in detail and recommended opening a DTS tech support incident. I’ve done that and have a support case open - would it be possible to take a closer look at this?

For context, my app (currently distributed outside the App Store) uses CGEventPost and CGEventCreateMouseEvent to modify mouse behavior.

Thank you

Answered by DTS Engineer in 834621022

There are two parts to this:

  • What works technically?

  • What’s the App Review policy?

I don’t work for App Review and thus can’t comment on the second part. If you want answers there, I recommend that you start a new thread in the App Store Distribution & Marketing > App Review topic area.

On the technical front, this is split by technology:

  • It is possible for a sandboxed app to use the Input Monitoring privilege. I regularly test this. Specifically, I’m using the CGEventTap API. This is what I’m talking about in that older thread you uncovered.

  • It’s not possible for a sandboxed app to use the Accessibility privilege [1]. Specifically, DTS doesn’t support folks using general accessibility APIs is sandboxed apps.

Share and Enjoy

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

[1] Without employing temporary exception entitlements.

There are two parts to this:

  • What works technically?

  • What’s the App Review policy?

I don’t work for App Review and thus can’t comment on the second part. If you want answers there, I recommend that you start a new thread in the App Store Distribution & Marketing > App Review topic area.

On the technical front, this is split by technology:

  • It is possible for a sandboxed app to use the Input Monitoring privilege. I regularly test this. Specifically, I’m using the CGEventTap API. This is what I’m talking about in that older thread you uncovered.

  • It’s not possible for a sandboxed app to use the Accessibility privilege [1]. Specifically, DTS doesn’t support folks using general accessibility APIs is sandboxed apps.

Share and Enjoy

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

[1] Without employing temporary exception entitlements.

Clarification on Accessibility and Input Monitoring APIs for App Store Apps
 
 
Q