I developed a network filter using system extensions and placed the system extension program in a container app. I activated the extension and enabled the network filter in the/Applications directory through the container app. After that, my container app process exited, and only the system extension program process in the/Library/SystemExtensions directory was running. After booting up and upgrading the macOS system, the system extension program will be launched, and I learned from the link below that the system extension will be launched with the system at startup: https://developer.apple.com/forums/thread/701986 . But I haven't learned from the official documentation of System Extensions and NetworkExtension why system extensions start with the system and what their principles are. Because the container app under the activation system extension/Application did not start. Has the network filter developed for system expansion been registered in the system related files or frameworks? Ensure that it will start after each startup
Has the network filter developed for system expansion been registered in the system related files or frameworks? Ensure that it will start after each startup
That’s right.
Under the covers a system extension is effectively a launchd
daemon. When your container app activates its embedded sysex, the system copies the sysex to a known ‘safe’ location and then registers it with launchd
. This causes launchd
to starts it as a daemon, both immediately and on restart.
IMPORTANT The specific details of this vary based on the type of sysex you’re creating. You will, for example, see different behaviour between an Network Extension sysex and an Endpoint Security sysex. However, the above should give you an idea as to the general process.
Share and Enjoy
—
Quinn “The Eskimo!” @ Developer Technical Support @ Apple
let myEmail = "eskimo" + "1" + "@" + "apple.com"