Content Filter iOS extension not running on TestFlight?

We have developed an iOS app to be a custom Content Filter plugin for an MDM provider. We have set up the Network Extensions Capability and tested the extension on a few development devices. The app loads, asks for permission to filter network content, and then the startFilter function in our NEFilterControlProvider class fires as expected.

However, when we go to deploy and test the app via TestFlight, the startFilter function never fires and the filter providers don't start. We are running the TestFlight version on a supervised iPad with an MDM profile installed.

Steps to Reproduce

  1. Run the application via Xcode on a development iPad. Application opens and requests permissions to filter content. When permission is granted, the filter starts running.
  2. Supervise the iPad via Apple Configurator
  3. Install an MDM Web Content Filter restriction on the supervised iPad
  4. Install the build via a TestFlight public link
  5. Open the app – the app does not request permission to filter content and the filter doesn’t start running

If you supervise the device, sign the app with an Enterprise certificate, and distribute the Content Filter app to your device with MDM instead of TestFlight, do you see a different result? If you distribute the app via an Enterprise certificate with MDM and are not able to start the content filter, please post the logs to this thread.

Otherwise, you can distribute a Content Filter on iOS in TestFlight outside of a supervised environment if you have the ScreenTime APIs in your app and approved for distribution.

Here is the distribution approval form for the Screen Time APIs: https://developer.apple.com/contact/request/family-controls-distribution

Matt Eaton
DTS Engineering, CoreOS
meaton3@apple.com
Content Filter iOS extension not running on TestFlight?
 
 
Q