Difference between AppProxy and TransparentProxy

What is the difference between AppProxyProvider and TransparentProxyProvider?

I can see in documentation that NETransparentProxyProvider is derived from NEAppProxyProvider, but what was the need to add a new proxyprovider (NETransparentProxyProvider) when we already had NEAppProxyProvider?

Accepted Reply

App proxies support both iOS and macOS and we didn’t want the limitations imposed by iOS to be applied on macOS.

Keep in mind that macOS 10.15 has no NETransparentProxyProvider class and your transparent proxy provider was expected to subclass NEAppProxyProvider. However, in macOS 11 we added NETransparentProxyProvider which has a critical benefit, namely that your ‘handle new flow’ methods can return false and the system will then process the flow as if your proxy didn’t exist. In contrast, if you subclass NEAppProxyProvider, returning false blocks the flow.

Share and Enjoy

Quinn “The Eskimo!” @ Developer Technical Support @ Apple
let myEmail = "eskimo" + "1" + "@" + "apple.com"

Replies

App proxies support both iOS and macOS and we didn’t want the limitations imposed by iOS to be applied on macOS.

Keep in mind that macOS 10.15 has no NETransparentProxyProvider class and your transparent proxy provider was expected to subclass NEAppProxyProvider. However, in macOS 11 we added NETransparentProxyProvider which has a critical benefit, namely that your ‘handle new flow’ methods can return false and the system will then process the flow as if your proxy didn’t exist. In contrast, if you subclass NEAppProxyProvider, returning false blocks the flow.

Share and Enjoy

Quinn “The Eskimo!” @ Developer Technical Support @ Apple
let myEmail = "eskimo" + "1" + "@" + "apple.com"