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:
- Safari Content Blockers (limited to Safari only)
- Multiple ManagedSettingsStore instances
- Network Extension / DNS filtering
- 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