How to block large lists of domains (1000+) using Screen Time API?

I'm developing a parental control app that needs to block adult/18+ websites using the Screen Time API. I've run into scaling issues with 'ManagedSettings.webContent.blockedByFilter`.

Environment:

  • iOS 18.x, real device (iPhone)
  • ManagedSettings framework
  • Screen Time permissions granted

Current Behavior:

The Question:

Commercial parental control apps successfully block tens of thousands of domains. What API or architecture should I be using to scale beyond 30-50 domains?

Approaches I'm considering:

  1. Safari Content Blockers (limited to Safari only)
  2. Multiple ManagedSettingsStore instances
  3. Network Extension / DNS filtering
  4. A different Screen Time API approach

What's the recommended way to block large domain lists (1000-60000+) across all apps and browsers?

Any guidance appreciated!

//33 domains - Works perfectly

let blockedSites: Set<WebDomain> = [

    WebDomain(domain: "example1.com"),

    WebDomain(domain: "example2.com"),

    // ... 31 more domains

]

store.webContent.blockedByFilter = .specific(blockedSites)

// All 33 domains blocked successfully



//  101 domains - Complete failure (no domains blocked at all)

let blockedSites: Set<WebDomain> = [

    WebDomain(domain: "example1.com"),

    // ... 100 more domains  

]

store.webContent.blockedByFilter = .specific(blockedSites)

// No errors thrown, but ZERO domains are blocked
How to block large lists of domains (1000&#43;) using Screen Time API?
 
 
Q