Distributing - sdon2/thermal-printer-tray GitHub Wiki
Create a QZ Tray distribution
This assumes Windows signing and macOS package signing have been configured.
Update the version
src/qz/common/Constants.javajs/qz-tray.js(two places)js/package.json(for npm)
Before publishing make sure to commit the above version changes. We usually just call this Bump version.
Create the builds
Chain all three builds on macOS, following compiling tutorial.
ant nsis && cp out/*.exe ~/Desktop/ && \
ant pkgbuild && cp out/*.pkg ~/Desktop/ && \
ant makeself && cp out/*.run ~/Desktop/
Sign Windows Release
Sign the .exe using DigiCert EV cert on Windows. Note, if you're on a High DPI screen, the app might look weird. Use this regkey and manifest to fix it.
- Insert the USB hardware key (if it's not ready, read this first)
- Download the
DigiCertUtil.exe - Wait for Windows to setup the hardware key (about 5 minutes)
- If it's the first time using the key on this computer, click "Repair cert"
- Sign using SHA1, then SHA2
- When prompted for a password, Windows 10 may ask for a
PIN, but actually use the full hardware password.
- When prompted for a password, Windows 10 may ask for a
Notarize macOS Release
-
Send the package to Apple for notarization:
xcrun altool --eval-app --primary-bundle-id io.qz.qz-tray -u <developer-id>@qz.io -f out/qz-tray-2.x.x.pkg -
After a few minutes, it returns:
RequestUUID = a1b2c3d4e5-a1b2-a1b2-a1b2-a1b2c3d4e5f6 -
Which then can be monitored remotely using:
xcrun altool --eval-info a1b2c3d4e5-a1b2-a1b2-a1b2-a1b2c3d4e5f6 -u <developer-id>@qz.io -
If approved, Apple will send an email:
Subject: Your Mac software was notarized. Body: The Mac software that you uploaded (bundle identifier
io.qz.qz-tray) was successfully notarized. -
Finally, staple the installer:
xcrun stapler staple out/dist/qz-tray-2.x.x.pkg
Publish
-
Upload builds to https://github.com/qzind/tray/releases/new
- Tag:
v2.x.x(remember thev) - Name:
2.x.x
- Tag:
-
Create simple, effective release notes. e.g.
**201X-01-01** **Features** * CP-987 support (#954) **Fixes** * Fixes HTTPS connections (#956) * Better signing example for js (a1b2c3d) -
Email premium clients (
qz.io(slash)admin)- Include abridged version of release notes
- Link to download
- Provide any additional information (such as status of 2.x.x beta)
-
Update
npmAssumesnpmis installed (e.g.brew install npm)- Open a terminal to
js(e.g.~/tray/js) - Ensure
package.jsonversion is up to date - If not already, call
npm adduser- User:
qzind - Public Email:
[email protected]
- User:
- Finally, call
npm publish
- Open a terminal to