Permission denied when installing Content Filter for individual-use Screen Time app

I'm using a Distribution-ready Family Controls Entitlement and it seems like I'm unable to save Content Filter configurations in my individual-use Screen Time app when I download a production build from TestFlight. For development builds, everything works fine.

From nehelper:

slowdown trying to create a content filter configuration through an app. Creating a content filter configuration is only allowed through profile in production version of slowdown.

From the app:

Failed to save configuration Slowdown: Error Domain=NEConfigurationErrorDomain Code=10 "permission denied" UserInfo={NSLocalizedDescription=permission denied}

-[NEFilterManager saveToPreferencesWithCompletionHandler:]_block_invoke_3: failed to save the new configuration: Error Domain=NEFilterErrorDomain Code=5 "permission denied" UserInfo={NSLocalizedDescription=permission denied}


TN3134 seems to suggest that Content Filters are allowed for Screen Time apps

Platform: iOS, Packaged as: app extension, Minimum OS: 15.0, Restrictions: Screen Time apps

TN3120 suggest the same:

There are two ways to deploy a content filter on iOS. In a managed environment, use MDM to deploy a content filter to supervised devices. In an unmanaged environment, deploy your content filter as part of a Screen Time app.

These technotes lead me to assume that this should be a supported use case. Any idea how to progress from here?

Answered by DTS Engineer in 767354022

Now the production build works, which indicates to me that there's something hard-coded that only allows the .child FamilyControlsMember and not the .individual one.

That’s correct.

At the time I wrote TN3134 I wasn’t sure exactly how the Screen Time exception worked, otherwise I would’ve include this info there. Since then another developer opened a DTS TSI about this and that gave me the opportunity to research it in depth. The result of the result is summarised in this post.

Any plans to expand the capabilities to individuals and not just child accounts?

I don’t know but, even if I did, I can’t talk about The Future™. If this is something you’d like to see, I encourage you to file an enhancement request describing your use case.

Please post your bug number, just for the record.

Share and Enjoy

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

I tried the same code with a child account and requestAuthorization(for: .child). Now the production build works, which indicates to me that there's something hard-coded that only allows the .child FamilyControlsMember and not the .individual one.

Any plans to expand the capabilities to individuals and not just child accounts? We're building a focus app for individuals and Content Filter is quite critical to its functionality.

Accepted Answer

Now the production build works, which indicates to me that there's something hard-coded that only allows the .child FamilyControlsMember and not the .individual one.

That’s correct.

At the time I wrote TN3134 I wasn’t sure exactly how the Screen Time exception worked, otherwise I would’ve include this info there. Since then another developer opened a DTS TSI about this and that gave me the opportunity to research it in depth. The result of the result is summarised in this post.

Any plans to expand the capabilities to individuals and not just child accounts?

I don’t know but, even if I did, I can’t talk about The Future™. If this is something you’d like to see, I encourage you to file an enhancement request describing your use case.

Please post your bug number, just for the record.

Share and Enjoy

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

Thank you for clarifying.

I've filed an enhancement request at FB13238080.

Permission denied when installing Content Filter for individual-use Screen Time app
 
 
Q