How to properly register a macOS System Extension in an Electron app?

Hi everyone,

I’m developing an Electron application on macOS and I’m trying to register and activate a macOS System Extension, but I’m running into startup and entitlement issues.

🔧 What I’m trying to build

•	An Electron app packaged with electron-builder
•	Signed with Developer ID Application
•	Notarized using @electron/notarize
•	A macOS System Extension is already built and signed
•	The System Extension provides a virtual camera
•	I wrote a Swift helper that:
•	Registers / activates the virtual camera
•	Calls OSSystemExtensionManager
•	This Swift code is compiled into a .node native addon
•	The .node module is loaded and called from Electron (Node.js) to trigger system extension registration

❗ The problem

When I add the following entitlement: <key>com.apple.developer.system-extension.install</key> <true/>

the application fails to launch at all on macOS.

Without this entitlement:

•	The app launches normally
•	But system extension activation fails with:

Error Domain=OSSystemExtensionErrorDomain Code=2 Missing entitlement com.apple.developer.system-extension.install

With this entitlement:

•	The app does not launch
•	No UI is shown
•	macOS blocks execution silently

🤔 My questions

1.	Is it valid for an Electron app’s main executable to have com.apple.developer.system-extension.install?

2.	Does Apple require a separate helper / launcher app to install system extensions instead of the Electron main app?

3.	Are there any Electron-specific limitations when working with macOS System Extensions?

4.	Is there a known working example of Electron + macOS System Extension?

5.	Do I need a specific provisioning profile or App ID capability beyond Developer ID + notarization?
How to properly register a macOS System Extension in an Electron app?
 
 
Q