Xcode 12 / macOS 11 Support
Currently i'm trying to get Squirrel up and running with macOS 11 and Xcode 12.
The major Problem is how outdated the used 3rd Party Libraries are and that macOS 10.8 is being dropped from Xcode 12.
ReactiveCococa ReactiveCocoa was moved to ReactiveObjC and the versioning is completly different from the ReactiveCocoa Repository. https://github.com/ReactiveCocoa/ReactiveObjC
How is it possible to be sure that everything is working with this dependency?
Mantle Seems easily updateable only some methods have changed and we need to link the new files as well in ShipIt directly.
Quick The Version used is on the 1.x Releases to the current release should be at least on the 2.x Range
Nimble Used nimble version is 6.x and the current release version is at least 8.x.
xcconfigs Is not even building anymore on macOS...
If Electron and Slack using Squirrel to update Software on the mac and want to use this on Apple Silicone as well there is now time to act. The earlier the better. How should we proceed to update the dependencies. Are Pull Request even welcomed?
@mRs- Electron currently builds Squirrel.Mac from source with a small number of patches applied.
- Add configuration for building with Chromiums build system (GN) --> https://github.com/electron/electron/blob/master/patches/squirrel.mac/build_add_gn_config.patch
- Update to support newer version of ARC --> https://github.com/electron/electron/blob/master/patches/squirrel.mac/fix_ensure_that_self_is_retained_until_the_racsignal_is_complete.patch
- Depend on
ReactiveObjC--> https://github.com/electron/electron/blob/master/DEPS#L110-L121
This work was done recently in order to support to Apple Silicon builds, Electron has it's own auto updater tests so we have confidence in Electron usage of Squirrel.Mac with these changes. They weren't upstreamed as it is heavily tied to Electrons / Chromiums build system which no one else uses.
Okay, we make the decision to move away for Squirrel. Thanks for your Input
@mRs- Please reopen the issue. Even if your project is moving away from Squirrel, others might still want to use it.
Was talking to Ana,
@MarshallOfSound would you be interested in a PR to update this to XCode 11/12 level?
Need it for a current project I'm working on and figured could pay it forward a little?
Okay, we make the decision to move away for Squirrel. Thanks for your Input
@mRs- may I ask what your team moved to as an alternative?
Our Electron (v8.5.1) application, called 'Exodus', is encountering a bug when using Electron's AutoUpdater.quitAndInstall method on the MacOS 11 Big Sur beta. The app quits and installs the update successfully, but fails to relaunch after quitting.
Checking ~/Library/Caches/com.electron.exodus.ShipIt/ShipIt_stderr.log, we find this:
2020-09-23 15:34:57.631 ShipIt[8329:31677] Beginning installation
2020-09-23 15:34:58.112 ShipIt[8329:29598] Moved bundle from file:///Applications/Exodus.app/ to file:///var/folders/nq/2z0ndbtj65gfcslvd2cv3zh80000gn/T/com.electron.exodus.ShipIt.igZIafRe/Exodus.app
2020-09-23 15:34:58.113 ShipIt[8329:29598] Moved bundle from file:///var/folders/nq/2z0ndbtj65gfcslvd2cv3zh80000gn/T/com.electron.exodus.ShipIt.c9hPQtzb/Exodus.app to file:///Applications/Exodus.app/
2020-09-23 15:34:58.154 ShipIt[8329:29598] Couldn't remove owned bundle at location file:///var/folders/nq/2z0ndbtj65gfcslvd2cv3zh80000gn/T/com.electron.exodus.ShipIt.c9hPQtzb/Exodus.app, error NSError { domain: NSCocoaErrorDomain, code: 4, description: "“Exodus.app” couldn’t be removed.", failureReason: "The file doesn’t exist.", underlying error: NSError { domain: NSPOSIXErrorDomain, code: 2, description: "The operation couldn’t be completed. No such file or directory" }, userInfo: {
NSFilePath = "/var/folders/nq/2z0ndbtj65gfcslvd2cv3zh80000gn/T/com.electron.exodus.ShipIt.c9hPQtzb/Exodus.app";
NSUserStringVariant = (
Remove
);
} }
2020-09-23 15:34:58.205 ShipIt[8329:29598] Installation completed successfully
The 'file doesnt exist' error would seem to be irrelevant. But compare it to a log from the same app performing an auto-update on Mac OS Catalina:
2020-09-17 17:55:13.704 ShipIt[4099:100428] Beginning installation
2020-09-17 17:55:15.095 ShipIt[4099:100040] Moved bundle from file:///Applications/Exodus.app/ to file:///var/folders/cq/220vc6_s0s5d988lcl0pftwm0000gn/T/com.electron.exodus.ShipIt.1hZyvbC9/Exodus.app
2020-09-17 17:55:15.096 ShipIt[4099:100040] Moved bundle from file:///var/folders/cq/220vc6_s0s5d988lcl0pftwm0000gn/T/com.electron.exodus.ShipIt.lYSp0JQw/Exodus.app to file:///Applications/Exodus.app/
2020-09-17 17:55:15.165 ShipIt[4099:100040] Couldn't remove owned bundle at location file:///var/folders/cq/220vc6_s0s5d988lcl0pftwm0000gn/T/com.electron.exodus.ShipIt.lYSp0JQw/Exodus.app, error NSError { domain: NSCocoaErrorDomain, c
ode: 4, description: "“Exodus.app” couldn’t be removed.", failureReason: "The file doesn’t exist.", underlying error: NSError { domain: NSPOSIXErrorDomain, code: 2, description: "The operation couldn’t be completed. No such file or di
rectory" }, userInfo: {
NSFilePath = "/var/folders/cq/220vc6_s0s5d988lcl0pftwm0000gn/T/com.electron.exodus.ShipIt.lYSp0JQw/Exodus.app";
NSUserStringVariant = (
Remove
);
} }
2020-09-17 17:55:15.252 ShipIt[4099:100040] Installation completed successfully
2020-09-17 17:55:15.344 ShipIt[4099:100431] Application launched at file:///Applications/Exodus.app/
2020-09-17 17:55:15.344 ShipIt[4099:100431] ShipIt quitting
It's almost identical except that the last two lines are missing on the Big Sur log.
2020-09-17 17:55:15.344 ShipIt[4099:100431] Application launched at file:///Applications/Exodus.app/
2020-09-17 17:55:15.344 ShipIt[4099:100431] ShipIt quitting
Those lines are logged from these locations:
https://github.com/Squirrel/Squirrel.Mac/blob/44468f858ce0d25c27bd5e674abfa104e0119738/Squirrel/ShipIt-main.m#L128 https://github.com/Squirrel/Squirrel.Mac/blob/44468f858ce0d25c27bd5e674abfa104e0119738/Squirrel/ShipIt-main.m#L145
Is ShipIt quitting's absence indicative of some kind of segmentation fault occurring? Seems like it should be logged no matter what, so why is it missing in the Big Sur log?
If i wanted to build electron+squirrel myself to insert print statements and debug this, how would i do it? Where would i find resources or documentation to help me fix such a bug?
Can anyone share information about alternatives? macos 10.8 seems antique to me