DailyJS
Published in

DailyJS

Source: Electron website

Open sourcing a backend for auto-updating Electron apps

Automating the Squirrel framework with the autoUpdater module

https://squirrel.endpoint/update/platform=osx&version=1.0.0
{
"url": "http://mycompany.com/myapp/releases/latest",
}

Manage your releases on GitHub

{
"appId": "<your app id>",
"mac": {
"target": ["zip"],
},
"win": {
"target": "squirrel",
},
"squirrelWindows": {
"useAppIdAsId": true
}
}
  • a .zip for the Mac application
  • a RELEASES , a .nupkg and a .exe for the Windows application. The .nupkg is for squirrel update, and the .exe is for first time installation.
  • Don’t have to set up a database
  • Don’t need to manually check for new releases
  • Set up an authentication system easily

Case Example

  • v1.0.4 - makeappicon-osx.zip
  • v1.0.0 - makeappicon-osx.zip

Request:

Response

Problems that we may encounter when packaging the app

AutoUpdater on Mac application throws authentication errors

  • Make sure you have signed your app, both the latest version being updated to and the version on the user computer running the update. Running electron . on your development machine will not work.
  • Code signing is not required for Windows applications, but you will get that ugly “Unknown Publisher” warning.
  • Your are using HTTPS instead of HTTP in all network traffic between autoUpdater and the Squirrel endpoint. That means, the URL returned by the squirrel endpoint also needs to be HTTPS:{"url": "https://....."}

OSStatus error -60006 on Mac applications

OSStatus error -60005 on Mac applications

  • Double check the URL returned by your Squirrel server is using HTTPS.
  • If your Squirrel endpoint is parsing the incoming request protocol to use as the protocol for URL , there is a chance that when you deploy your Squirrel endpoint to a cloud server, the inbound requests are passing through a proxy, so they become HTTP when they reach your Squirrel endpoint application. As a result, the URL is returned with a HTTP URL

How to get the autoUpdater to work on Windows

The Windows application crashes with Squirrel not found when launching

  • If you are not using the electron-builder to build you app, you have to make sure you build your Windows application with Squirrel. Some packagers do not include it by default.

Our open source project enables you to deploy for free

Contributions are welcome!

--

--

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store
Oursky

All about app development: iOS, Android, Web, UI / UX, and SEO. Team of developers, designers and geeks. Cat people. oursky.com @ Hong Kong | Taipei