Hello!I'm trying to create an AppProxy NetworkExtension for macOS, but the code of the extension is not called.The project is just a simple Hello World app and AppProxy target from Xcode's template.I believe I have all the formal settings of the project and targets setup correctly:- The project is builds and runs without any error.- Calling OSSystemExtensionManager.shared.submitRequest() succeeds.- systemextensionsctl list shows that the extension is [activated enabled].Following messages are shown in the Console when filterred by my bundle identifier:- sysextd Starting enablement of /teamID("") version 1
- sysextd notifying categories that extension will start
- nesessionmanager System extension will be started
- sysextd starting extension via owning category
- nesessionmanager Starting system extension
- nesessionmanager Submitting launchd job: {
...
}
- sysextd Extension point confirmed that extension is runnable.
- sysextd changing state of extension to activated_enabled.
- nesessionmanager Adding event subscription for provider with extension point com.apple.networkextension.app-proxyThere are NSLog() lines in my AppProxyProvider.swift for rach callback and also in the main.swift of the extension target. None of those logs can be seen via the Console application. The class AppProxyProvider is set as com.apple.networkextension.app-proxy in the Info.plist under NEProviderClasses.I have successfully built and run the SimpleFirewall example project with my added log lines and that one works correctly.Isn't there something I forgot to implement so that the code of the AppProxyProvider is actually launched?
Post
Replies
Boosts
Views
Activity
Hello,
I'm developing an app with with Network Extension (NEAppProxyProvider). At launch of the application a configuration of the network interface is normally saved to System Preferences via call [NETransparentProxyManager saveToPreferencesWithCompletionHandler:]. Then a dialog about allowing the network configuration appears to user and everything works fine.
But for some users I need to provide a MDM .plist so that they can push this network configuration to their Macs, because they don't want the configuration approval dialog to appear.
Is it possible to create such MDM .plist for this type of network extension configuration?
Hello,
I'm developing a network extension: NEAppProxyProvider managing the extension logic (com.apple.networkextension.app-proxy)
NETransparentProxyManager for the configuration in System Preferences
When the NETransparentProxyManager successfully executes saveToPreferencesWithCompletionHandler and the NEAppProxyProvider connects, the item/network interface in System Preferences -> Network is added and connected (green color) and is being shown as a VPN.
In the detail of the item there are also possibilities for a user/admin to Disconnect the VPN. When I also set NEOnDemandRuleConnect to the NETransparentProxyManager, there is also a checkbox to disable it.
My question: Is it possible to hide these buttons and checkboxes in details of the VPN or is it shown by design? There are also text fields like Server Address and Account Name.
The other type of Network Extension com.apple.networkextension.filter-data doesn't provide such actions for a user in its details.
Hello,
I'm developing an application with NEAppProxyProvider.
Everything works flawlessly. I see my VPN network interface in the System Preferences -> Network list and it successfully goes to state Connected.
But there is a problem when there is no active network, e.g. user's wifi or LAN connection is disconnected. Then my VPN does not launch/connect. Yes, the user can than manually connect the VPN from the System Preferences -> Network when he connects to a network. But i'd like launch/connect the VPN automatically if there is any active network. Because the user might be traveling with his MacBook between different wifi ACs, or there might be a network outage, etc. And I don't want to annoy the user with the need of manual launch/connect of the VPN.
Is there any way to set a callback when an active network becomes available? It would largely increase user experience of my application.