When you’ve just started iOS development and want to create an app that blocks sites, your first thought may be DNS. It seems more reliable and simpler to stop the process at the name resolution stage than to monitor the process.
When you search, you will find a class called NEDNSProxyProvider. The name remains the same, and the purpose appears to be the same.
But don’t use this. It’s easy to waste time here, especially if you have no experience with iOS.
What is the class designed for?
NEDNSProxyProvider is part of the Network Extension framework and is a class for setting up a DNS proxy on a device. Technically, that’s how it works.
The problem lies in the target environment. If you read Apple’s TN3134 (Network Extension Provider Deployment), you’ll see that this class is intended for MDM-controlled supervised devices—terminals managed by businesses and schools.
Not intended for apps distributed to individual users on the App Store. If you have experience with iOS development, you will understand the context of “for MDM-managed devices,” but this part is difficult to read at first.
Consistent messages in developer forums
When you ask about implementing self-control apps on the Apple Developer Forums, the answers are pretty consistent. You will be directed to Family Controls + ManagedSettings.
Even when I explain my need to filter DNS myself, I get a response saying, “That’s not the intended use case.” Trying to implement harmful site blocking for individual users using Network Extensions is itself contrary to Apple’s design philosophy.
Many people find out for the first time after reading forums that “iOS has its own API.”
What will actually happen?
Since it is a function for supervised devices, it is unclear whether it will pass the review as a regular App Store app. Development will continue with the risk of App Review rejection.
What’s more, if you choose this path, you won’t be able to use FamilyActivityPicker or ManagedSettings. You end up writing all the block logic yourself and don’t benefit from any of the mechanisms that Apple maintains at the platform level.
Switching conclusion
For self-control iOS apps for individual users, the combination of Family Controls + ManagedSettings is the answer. If you have no experience with iOS development, you will proceed without knowing that there is a formal API.
I understand that you want to tinker with the DNS system. But following Apple’s platform policies reduces App Review friction and long-term maintenance costs. You should read the Screen Time API documentation first before spending time on NEDNSProxyProvider.
hsb.horse