After switching to the new DNS Proxy system extension extension point, I’m seeing a mismatch between the current Info.plist on disk and what nesessionmanager reports during validation.
Current Info.plist of the installed system extension:
plutil -p "/Applications/MyMacProxy.app/Contents/Library/SystemExtensions/com.example.agent.MyMacProxy.dnsProxy.systemextension/Contents/Info.plist"
{
"CFBundleIdentifier" => "com.example.agent.MyMacProxy.dnsProxy"
"CFBundlePackageType" => "SYSX"
"NSExtension" => {
"NSExtensionPointIdentifier" => "com.apple.dns-proxy"
"NSExtensionPrincipalClass" => "com_example_agent_MyMacProxy_dnsProxy.DNSProxyProvider"
}
"NSSystemExtensionUsageDescription" => "SYSTEM_EXTENSION_USAGE_DESCRIPTION"
...
}
There is no NetworkExtension key in this Info.plist.
However, when the host app tries to activate the DNS proxy system extension, I still get:
Validating system extension com.example.agent.MyMacProxy.dnsProxy
System Extension validation failed: Error Domain=NetworkExtensionErrorDomain Code=2
"The system extension com.example.agent.MyMacProxy.dnsProxy has an invalid NetworkExtension key in its Info.plist: the value for the NetworkExtension key must be a non-empty dictionary."
Spotlight does not show any other copies of this bundle ID:
mdfind 'kMDItemCFBundleIdentifier == "com.example.agent.MyMacProxy.dnsProxy"'
no results
Is there any known caching behaviour in nesessionmanager or in the NetworkExtension validation logic that could cause it to keep expecting a NetworkExtension dictionary, even when the current Info.plist only declares the com.apple.dns-proxy extension point?
Topic:
App & System Services
SubTopic:
Networking
Tags: