I maintain Time Out, a macOS break-reminder app. An optional scheduling rule skips breaks while Focus is active, avoiding interruptions during focused work.
I’m trying to establish the supported way to read Focus status for this purpose and resolve an App Store Connect warning.
Our legacy Do Not Disturb/Focus observer worked on macOS 26. In testing on macOS 27, it continued to report Focus as inactive and no longer received the expected state-change notifications.
I restored detection using INFocusStatusCenter. The app:
- Includes
NSFocusStatusUsageDescription, explaining that access is used to skip breaks while focused. - Requests authorization when an enabled scheduling rule needs Focus status.
- Reads
INFocusStatusCenter.default.focusStatus.isFocusedonce authorized.
Without the com.apple.developer.usernotifications.communication entitlement, authorization reached .authorized, but isFocused returned false while Focus was active.
Adding the entitlement made detection work in the tested configuration, and Time Out correctly skipped the break. I also reset Focus-status permission and verified the authorization flow again.
With that entitlement present, uploading succeeds, but Xcode and the subsequent email report ITMS-90894: Missing Info.plist value. The warning says that apps with the communication entitlement must declare either INSendMessageIntent or INStartCallIntent in the NSUserActivityTypes array.
Time Out does not provide person-to-person messaging or calling, send communication notifications, or share Focus status with other people. It only uses the status locally to decide whether to present a break, so declaring either intent seems inappropriate.
- Is
INFocusStatusCentersupported for a macOS utility that uses Focus status solely to suppress its own interruptions? - Is the communication entitlement required for that use? If not, is there another supported API or configuration?
- If this use is supported, how should the app resolve ITMS-90894 without declaring messaging or calling functionality it doesn’t provide?
- Is authorization succeeding while
isFocusedreportsfalsewithout the entitlement expected behavior, or should I file a Feedback report? - Does
isFocusedindicate that a Focus is active generally, or that the current Focus silences notifications specifically for the requesting app?
Has anyone implemented this successfully in a Mac App Store utility, or can someone from Apple clarify the intended approach?