I've searched these terms all over the place and have found only a confusing mishmash of things that were probably true years ago but no longer seem to reflect today's reality so I'm posting it here to hopefully add a definitive 2026 answer to these search results for myself and others.
The existence of the DNS Proxy Network Extension protocol in 10.15 has given me an idea. I would like to test this idea to see if it is worth developing further or a complete waste of time. This test does not need to run on any device anywhere in the world other than the one in front of me so I would prefer not to spend $100 just to see if I can make a small code fragment do a silly trick. XCode sadly refuses to build my Network Extension target when I only have a "Personal Team" to sign with:
Personal development teams, including "XXXX XXXX", do not support the Network Extensions capability.
Can this be done or is Apple just 100% pay-to-play nowadays? I have zero problems disabling SIPS or any other consumer grade protections if that will actually achieve my goal but I've read enough comments from people saying it didn't work that I haven't bothered trying.
Thanks for reading.
OS: 15.7.5 (24G624)
XCode Version 26.3 (17C529)
Can this be done … ?
Probably, but whether it’s worth it depends on how much you value your time.
First, some background. Most NE entitlements are available to all developers who are members of a paid team. And you’re right that there’s a bunch of backstory to this, but the info in my Network Extension Framework Entitlements post is up to date.
Also, Developer Account Help > Reference > Supported capabilities (macOS) is a good page to bookmark, because it lists a bunch of common capabilities and their team requirements. The Apple Developer column in that table is what you get with free provisioning, also known as Personal Team in Xcode.
Now, for iOS and its child platforms that’s the end of the story. For macOS you have options. You can disable SIP and then disable bits of the trusted execution system and thereby claim any entitlements you want. For an example of this, see this post.
IMPORTANT This is not a supported configuration. Thus, while it worked when I tried it back in the day, I can’t guarantee it’s still working today, or indeed whether it’ll work for your specific use case.
And that brings us back to the question of how much your time is worth. It’s easy to imagine you spending a few hours getting this sorted out (indeed, you might’ve already spent a few hours investigating this!). If your time is valuable, spending the money to join the developer programme might start looking like a good deal.
Share and Enjoy
—
Quinn “The Eskimo!” @ Developer Technical Support @ Apple
let myEmail = "eskimo" + "1" + "@" + "apple.com"