2.6 KiB
Publishing Etcher
This is a small guide to package and publish Etcher to all supported operating systems.
Prequisites
- NodeJS
- GNU Make
- wine (for Windows)
- nsis (for Windows)
- XCode (for OS X)
- AWS CLI (for uploading packages)
- osslsigncode (for signing the Windows installers)
If you're going to generate installers for another platform than the one you're currently running, make sure you force-install all NPM dependencies, so optional dependencies marked for a certain operating system get installed regardless of the host operating system
npm install --force
You can run the following command at any time to start from a fresh state:
make clean
Signing
OS X
-
Get our Apple Developer ID certificate for signing applications distributed outside the Mac App Store from the Resin.io Apple account.
-
Install the Developer ID certificate to your Mac's Keychain by double clicking on the certificate file.
The application will be signed automatically using this certificate when packaging for OS X.
Windows
-
Get access to our code signing certificate and decryption key as a Resin.io employee by asking for it to the relevant people.
-
Place the cert and key in the root of the Etcher repository naming them
certificate.crt.pem
andcertificate.key.pem
, respectively.
The application and installer will be signed automatically using these certificates when packaging for Windows.
Packaging
Run the following command to make installers for all supported operating systems:
make installer-all
You can replace all
with osx
, linux
or win32
to only generate installers for those platforms:
make installer-osx
make installer-linux
make installer-win32
The resulting installers will be saved to etcher-release/installers
.
Uploading
Make sure you have the AWS CLI tool installed and configured to access Resin.io's production downloads S3 bucket.
Run the following command to upload all installers:
make upload-all
As with the installer
rule, you can replace all
with osx
, linux
or win32
to only publish those platform's installers:
make upload-osx
make upload-linux
make upload-win32