fix(pkgbuild): dont start coder connect after upgrade #150
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
As part of my work on #121 and trying to reproduce the behaviour in a VM, I discovered the issue consistently occurs if the VPN is running when the app is launched (as the network extension is replaced on upgrade).
The existing pkgbuild scripts don't account for the VPN running with the app closed.
In this scenario the
preinstall
script creates a marker file saying the VPN should be started in thepostinstall
. A marker file saying the app is running is not created.Then, in the
postinstall
the VPN is started, but not the app. When the user does launch the app, the network extension is upgraded whilst the VPN is running, and the linked issue occurs.It's not possible to write a bash script that waits for not only the app to launch, but for the network extension replacement request to be sent and handled.

However, we already do this in Swift code. If
Start Coder Connect on launch
is toggled on, the VPN won't be started until it is absolutely safe to do so.Therefore, we'll remove the portion of the pkgbuild scripts responsible for turning the VPN on after upgrade. If users want this behaviour, they can just toggle it on in settings.