You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
For now folks on macbooks should install with npm i -g @apollo/rover or just restart their computer after installing with the curl | sh installer.
From what I can tell this is what's happening (docs on this are hard to find):
user installs rover 0.0.4 with curl installer as a fresh install
user runs rover
gatekeeper has never seen this file before, so it validates the code signature against apple's notarization service (details are hazy here but this is the gist)
rover works. great.
user installs rover 0.0.5 with curl installer
it prompts to overwrite the old version
user accepts
0.0.5 binary overwrites old 0.0.4 binary
gatekeeper thinks its seen this file before, and does not detect com.apple.quarantine so does not validate the code signature against apple's notarization service
the file has changed, meaning the signature mismatches what gatekeeper pulled from the notarization service for 0.0.4
gatekeeper kills rover
user restarts computer
rover 0.0.5 works now since gatekeeper decides to refresh the signature (or something like that? idk)
some other interesting things to note:
cargo doesn't seem to be codesigned at all. how this runs on my macbook without any extra hoops is sheer wizardry and i have no idea how they're doing that.
nvm does have things codesigned, and stores binaries in separate directories for each version, which may be a valid way of doing this (could maybe symlink main rover binary to various version subdirectories)
since we're signing + notarizing, we could probably fairly easily distribute with brew fairly easily which would fit in with how MacOS devs are used to installing software
it also seems like if i do the following, it tricks gatekeepr into checking again so maybe we can just do that with the installer:
For now folks on macbooks should install with
npm i -g @apollo/rover
or just restart their computer after installing with thecurl | sh
installer.From what I can tell this is what's happening (docs on this are hard to find):
com.apple.quarantine
so does not validate the code signature against apple's notarization servicesome other interesting things to note:
it also seems like if i do the following, it tricks gatekeepr into checking again so maybe we can just do that with the installer:
The text was updated successfully, but these errors were encountered: