Fails to load on macOS Mojave
We are getting crash reports from customers using this on macOS Mojave (18).
Error: dlopen(/private/var/folders/rz/67fj5f3964z6vkrkfnwwvz7r0000gn/T/AppTranslocation/A7D6E97A-99AA-4291-B0E1-8EBDA7277519/d/COGS.app/Contents/Resources/app.asar.unpacked/.webpack/renderer/node_modules/@ngrok/ngrok-darwin-x64/ngrok.darwin-x64.node, 1): no...
Is there a workaround?
I'm surprised the module doesn't load given it looks like it's compiled to be supported on macOS 12+.
$ vtool -show-build ngrok.darwin-x64.node
ngrok.darwin-x64.node:
Load command 10
cmd LC_BUILD_VERSION
cmdsize 32
platform MACOS
minos 12.0
sdk 13.1
ntools 1
tool LD
version 820.1
I now understand that the Darwin version is not the same as the macOS version.
minOS 12.0 implies the minimum supported version is macOS Monterey. I haven't seen this documented anywhere and if I had known I would have thought twice about switch from the ngrok CLI to this library.
Is it possible to add support for older versions of macOS?
Note that the ngrok CLI supports macOS 11+:
vtool -show-build $(which ngrok)
/opt/homebrew/bin/ngrok:
Load command 5
cmd LC_BUILD_VERSION
cmdsize 24
platform MACOS
minos 11.0
sdk 11.0
ntools 0
@chetbox thanks for raising this issue. sorry to hear that you've ran into issues.
Note that the ngrok CLI supports macOS 11+:
This is due to the fact ngrok leverages ngrok-go rather than ngrok-rs which is the underlying library for this sdk.
I haven't seen this documented anywhere and if I had known I would have thought twice about switch from the ngrok CLI to this library.
Thanks for calling this out! Definitely a miss on our side, we are using napi-rs under the hood to build binaries and it copied their platform support matrix table instead of building one based on our build pipeline. Something we definitely we need to address.
Is it possible to add support for older versions of macOS?
Not sure, would have to investigate whether that's something that github actions and napi-rs, will bring this up with the engineering team, the core maintainer for this pipeline is currently out so it might take a bit before we have a response or any insights.
Question I had while reading through the issue:
- Is this something you are working on locally on your machine or in a remote environment?
- Is this something you are working on locally on your machine or in a remote environment?
Our customers are using ngrok in an Electron desktop app on Windows, macOS and Linux.
Currently we're having to tell customers on older versions of macOS not to upgrade the app through our built-in auto update mechanism.
For context:
We have integrated ngrok in COGS, as desktop app for controlling theatre shows. (https://cogs.show) ngrok allows operators to monitor and control the experiences remotely.
We switched from ngrok CLI to this JS SDK so we don't have to worry about managing a separate process. We were using the ngrok package which is an unofficial wrapper around the ngrok CLI and occasionally a few bugs have crept up hence we decided to go with the "official" route, unaware of the system requirements.
@chetbox just following up here. We don't have any plans to add support for older versions of macos for our SDKs. You may continue to use older versions of the ngrok agent if you are on a paid plan. If you have additional questions, please feel free to reach out to customer support at [email protected]. Thanks!