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-proxy
There 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?