- Fixed an error in an XML comment
- Some `ServerError` objects were being created with error code -32500,
which is the code for `ApplicationError` and is not in the
`ServerError` range. I changed those to use `ApplicationError` which
is also more consistent with the rest of the codebase.
This is really prep for MSIX image assets for the Windows build, but I
figured I might as well do the macOS icons as a first step so that this
can be its own separate change.
This actually removes the framework after the build system embeds it,
which isn't a very satisfying hack but it works. It needs to be removed
before the codesigning step, otherwise the signature would be
invalidated.
There's probably a linker setting or a csproj setting that would prevent
the framework from being embedded in the first place, but I haven't been
able to find it yet. Note for the future: the framework gets embedded
during the `_CompileToNative` step.
* Add `LSApplicationCategoryType` key to the app's `Info.plist`
* Fix capitalization of `PlugIns` directory for embedding the extension
into the app
* Fix helper & extension bundle IDs to start with the app's bundle ID
Note that the helper now uses the same product bundle ID as the Scratch
Link app. This is necessary to successfully build the extension with the
helper. The "Scratch Link Safari Helper" can now be thought of as the
"Scratch Link Safari Extension build helper"... hopefully I can find a
more elegant solution in the future.
Restore wasn't fully implemented anyway, and having it enabled would
occasionally cause macOS to report "Bluetooth unavailable" after
reconnecting BLE sessions several times.
After turning that off, macOS treats implementing
`WillRestoreStateEvent` as an error, so I removed that.
Two changes:
- ignore a BT device if it's already connected to something else
- use `OpenRfcommChannelAsync` to try to start checking for an open
channel more quickly. It's unclear whether or not this is strictly
better but in my testing it seems better.
The other methods are still present, but disabled, in case we can later
find a way to make them more reliable. Note that the behavior differs by
macOS version, so testing against just one version of macOS is not
enough!