lvsti / CEF.swift

Swift bindings for the Chromium Embedded Framework
BSD 3-Clause "New" or "Revised" License
94 stars 29 forks source link

SeatbeltExecServer: Failed to initialize sandbox: -1 Operation not permitted #46

Closed awmcclain closed 3 years ago

awmcclain commented 3 years ago

I've copied over the C & swift app helpers into my own app -- but I keep running into: SeatbeltExecServer: Failed to initialize sandbox: -1 Operation not permitted when I call https://github.com/lvsti/CEF.swift/blob/df74c13691c7b0ec1bf8624d5875af2e31758d9d/Samples/CEFDemo/CEFDemo%20Helper/main.c#L24

This is working for me in the demo, so I'm wondering if it might have to do with some linker flags or framework setup issues.

Also, what is the difference between all the different helpers? I notice that some of them are compiled as C only, and some of them (like the renderer) are using SwiftHelper.

I know that CEF automatically looks for the helper app at Frameworks/{$PROJECT_NAME} Helper.app (unless you change CEFSettings.browserSubprocessPath). Is it doing some magic to choose each helper (i.e. CEFDemo Helper (GPU)) based on their name? Are all of them needed?

awmcclain commented 3 years ago

Ug. Silly me, when I had created a project for the GPU Helper, I had accidentally turned on App Sandboxing -- that caused the the dynamic loader to trip up (once I realized the sandbox logs to syslog) at the file level, which then prevents the sandbox from being reinitialized by any of the other processes.

Then I couldn't figure out why nothing would show up when the window loaded -- and it wasn't until i realized that I needed the ${PROJECT NAME} Helper (Renderer).app subprocess (named exactly that way) in order to invoke correctly. I couldn't find anything in the CEF docs about that named subprocess distribution -- is that a CEFSwift thing?

lvsti commented 3 years ago

I believe the "XXX Helper (Renderer)" is a relatively recent thing but if I look at any electron app right now (e.g. VSCode) they all have a "(Renderer)" subprocess. I'm not sure if it is a must, though.

awmcclain commented 3 years ago

Ah, yes, it is required -- https://groups.google.com/g/cef-announce/c/YK6CTvGNhlY (via the CEF forum)