Install and manage user-space code that extends the capabilities of macOS.
- macOS 10.15+Beta
Creating system extensions allows your app to enhance the capabilities of the user’s Mac, without the associated risks of developing kernel extentions (KEXTs). System extensions run in user space, where they can’t compromise the security or stability of macOS. The system grants these extensions a high level of privilege, so they can perform the kinds of tasks previously reserved to KEXTs.
You use frameworks like DriverKit and USBDriverKit to write your extension, before packaging the driver in your app bundle. At runtime, your app calls the SystemExtensions framework to install or update the extension for the user. Once installed, an extension remains available for all users on the system. Users can disable the extension by deleting the last copy of the host app, which deletes the extension.