Filter content without MDM profile?

Hello!

I'm new to iOS development and am developing an app that blocks certain websites. At the moment, I'm thinking of using the Network Extension capability to do the job. From what I have read, in the production version of the app, you'd need to make use of MDM profiles since NE filtering only works on supervised devices. So, I'm here to ask the community if there are better options than using this method.

As far as screen time api is concerned, I believe it requires the user to specify which websites they want blocked by themselves using the activity picker so that doesn't quite work for me since i want to allow the app to block groups of websites by itself based on the user's preference.

Thanks!

Post not yet marked as solved Up vote post of stilakid Down vote post of stilakid
744 views
  • Update: okay so I was wrong about screen time api's limitation in the original post. It allows you to block websites by providing it with a list of urls BUT at the moment, it only allows you to block 50 websites. Hence, the original question still stands since my app specificaiton requires it to go beyond blocking 50 websites.

Add a Comment

Replies

From what I have read, in the production version of the app, you'd need to make use of MDM profiles since NE filtering only works on supervised devices.

That’s true, but not the whole story. For more on this, see TN3134 Network Extension provider deployment.

TN3134 described a Screen Time exception. I recently researched the details of that for a DTS incident. My conclusion is that NE allows an app to enable this feature if it’s the current registered parental control app.

And how is that determined? The app must request and be granted .child authorisation by calling the requestAuthorization(for: .child) method.

That API only grants authorization to the app if it’s called on a device signed into an under 18 child account in an iCloud family. Additionally, it prompts the user to authenticate as the child’s parent.

Share and Enjoy

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

  • It's long past time to get this info into TN3134 (r. 118167845).

  • And now that's done. Yay!

Add a Comment

Just to clarify, this should work for the .individual authorization too, right, when calling requestAuthorization(for: .individual)?

No, at least not as it was explained to me by the Family Controls folks. I’ve not tried this myself.

Share and Enjoy

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