DefinedNet / mobile_nebula

Brings nebula to mobile devices (iOS, Android)
https://defined.net
123 stars 37 forks source link

Rework the ios startup flow slightly to avoid crashing on ios 16.5 #132

Closed nbrownus closed 1 year ago

nbrownus commented 1 year ago

iOS 16.5 changed the IPC behavior with the vpn process which caused the process to crash if it received an appMessage before it was "ready".

This change no longer caches the system completionHandler when being asked to start by the UI, instead calling it immediately, which appears to get the vpn process in the "ready" state.

This also changes when the UI side determines its safe to send an appMessage, this will delay the ui toggle flip from off -> on by a little bit.

There is an opportunity to make the experience feel snappy like pre 16.5 days but it will require a larger lift.

Closes #131

nbrownus commented 1 year ago

@JohnMaguire had asked how things could be improved in the future out of band. The approach I was imagining was splitting the UI on/off toggle state and the description state a further from the IPC command readiness for both the swift and iOS side.