Documentation
Distributing
Create a QZ Tray distribution
This assumes Windows signing and macOS package signing have been configured.
src/qz/common/Constants.java
-
js/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
.
Chain all three builds on macOS, following compiling tutorial.
ant pkgbuild && cp out/*.pkg ~/Desktop/ && \
ant makeself && cp out/*.run ~/Desktop/ && \
ant -Dtarget.arch=x86_64 nsis && cp out/*.exe ~/Desktop/ && \
ant -Dtarget.arch=x86_64 pkgbuild && cp out/*.pkg ~/Desktop/ && \
ant -Dtarget.arch=x86_64 makeself && cp out/*.run ~/Desktop/ && \
ant -Djlink.java.version=21.0.7+9 -Dtarget.arch=riscv64 makeself && cp out/*.run ~/Desktop && \
echo "Done"
As of QZ Tray 2.2.5, this is done automatically by the build system using Amazon KMS
Click to expand old steps
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
-
Send the package to Apple for notarization:
xcrun notarytool submit --wait qz-tray-x.x.x-arm64.pkg --wait --apple-id <developer-id>@qz.io --password <the-secure-password> --team-id <team-id>
-
apple-id
: The email of the apple developer account -
password
: The application-specific password (NOT the Apple developer password!) -
team-id
: The signing ID, e.g.P5DMU6659X
-
-
After a few minutes, it returns:
Processing complete id: abcdefgh-abcd-1234-abcd-abcdefghij + status: Accepted
-
Which then can be monitored remotely using:
xcrun notarytool log abcdefgh-abcd-1234-abcd-abcdefghij --apple-id <developer-id>@qz.io --password <the-secure-password> --team-id <team-id>
-
Finally, staple the installer:
xcrun stapler staple qz-tray-x.x.x-arm64.pkg
Processing: qz-tray-x.x.x-arm64.pkg Processing: qz-tray-x.x.x-arm64.pkg + The staple and validate action worked!
-
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
npm
Assumesnpm
is installed (e.g.brew install npm
)- Open a terminal to
js
(e.g.~/tray/js
) - Ensure
package.json
version is up to date - If not already, call
npm adduser
- User:
qzind
- Public Email:
support@qz.io
- User:
- Finally, call
npm publish
- Open a terminal to