Skip to content
This repository has been archived by the owner on Feb 22, 2020. It is now read-only.

feat(Code Signing) windows & mac #122

Open
wants to merge 31 commits into
base: master
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
31 commits
Select commit Hold shift + click to select a range
13fa5bc
initial commit
codekiln Sep 19, 2017
387112f
Merge remote-tracking branch 'upstream/master'
codekiln Sep 19, 2017
77e6116
add npm package lock
codekiln Sep 21, 2017
b0818e2
add spawn debug messages to nsis-gen
codekiln Sep 21, 2017
abfc543
Merge pull request #1 from evshiron/master
codekiln Sep 25, 2017
5e8c22b
Merge remote-tracking branch 'upstream/master' into myer/basic_example
codekiln Sep 25, 2017
a3365a9
add basic code signing of directly produced .exe, .dll files
codekiln Sep 25, 2017
b4dccf4
Merge remote-tracking branch 'upstream/master'
codekiln Sep 28, 2017
4e45f1e
add dotenv password code signing of directly produced .exe, .dll files
codekiln Sep 28, 2017
aaa1a59
add signing of nsis7z and nsis setup.exe files
codekiln Sep 29, 2017
4c2e814
add signing of uninstaller in nsis target
codekiln Oct 6, 2017
1166782
do prep work for signing nsis 7z plugin
codekiln Oct 10, 2017
b724add
ensure globby behaves correctly and doesn't stall on windows
codekiln Oct 10, 2017
a4d2cf9
remove spurious file
codekiln Dec 8, 2017
201ed2f
WIP mac signing - I'm abandoning in favor of simpler approach for now
codekiln Dec 12, 2017
0686348
Add exception handling to env var parsing
codekiln Dec 12, 2017
1e91948
simplify defualt files to sign globs for mac
codekiln Dec 12, 2017
3ce8fc5
add mac signing
codekiln Dec 14, 2017
1352caf
add mac signing
codekiln Dec 14, 2017
c9afe6d
remove mac signing. see https://stackoverflow.com/q/47820846/78202
codekiln Dec 14, 2017
2876b4e
remove mac signing. see https://stackoverflow.com/q/47820846/78202
codekiln Dec 14, 2017
88e70cb
make windows signing work again after adding mac signing
codekiln Dec 15, 2017
24c4851
create extra arg for nodir:false because of new features in globby
codekiln Dec 15, 2017
013d5e3
clarify error message for mac signing
codekiln Dec 15, 2017
a8bec03
remove unneeded appdmg in package.json
codekiln Dec 15, 2017
6471c2d
export spawnAsync
codekiln Dec 15, 2017
388c427
Merge pull request #3 in ~PNORE/nw-builder-phoenix from myer/ev_code_…
codekiln Dec 15, 2017
16d599a
Merge branch 'master' of https://github.com/evshiron/nwjs-builder-pho…
codekiln Jul 14, 2018
5d8e903
Merge branch 'master' of https://github.com/codekiln/nwjs-builder-pho…
codekiln Jul 14, 2018
822e9df
tested in client app sat jul 14, 401 PM
codekiln Jul 14, 2018
36c2421
Clarify documentation RE: signing
codekiln Jul 14, 2018
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
18 changes: 12 additions & 6 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,16 +1,22 @@
# nwsign - test signing nw.js app

# nwjs-builder-phoenix [![npm version](https://img.shields.io/npm/v/nwjs-builder-phoenix.svg)](https://npmjs.org/package/nwjs-builder-phoenix) [![Standard Version](https://img.shields.io/badge/release-standard%20version-brightgreen.svg)](https://github.com/conventional-changelog/standard-version)

A possible solution to build and package a ready for distribution NW.js app for Windows, macOS and Linux.
A possible solution to build and package a ready for distribution `nw.js`
app for Windows, macOS and Linux.

## Why Bother?

We already has official `nw-builder` and `nwjs-builder`, which was built as an alternative before `nw-builder` would support 0.13.x and later versions.
`nw-builder` has made little progress on the way, and `nwjs-builder` has been hard to continue due to personal and historic reasons.
`nw-builder` and `nwjs-builder` were built before `nw-builder` supported
0.13.x and later versions. Both have stalled along the way.

`electron-builder` inspired me when I became an Electron user later, loose files excluding, various target formats, auto updater, artifacts publishing and code signing, amazing!
When I became an Electron user, `electron-builder` inspired me: one can
exclude files, support various targets, support auto-updating, publish
artifacts, and support code signing. It really is a step ahead of `nw.js`.

Although NW.js has much lesser popularity than Electron, and is really troubled by historic headaches, let's have something modern.
`nw.js` still supports many use cases not supported by Electron, so we
need something more modern like `electron-builder`, but for `nw.js`.
That's why `nwjs-builder-phoenix` exists.

## Features

Expand All @@ -26,7 +32,7 @@ Although NW.js has much lesser popularity than Electron, and is really troubled
* `nwjs-ffmpeg-prebuilt` integration
* [Auto Updater](./packages/nsis-compat-tester/)
* TODO Rebuilding native modules
* TODO Code signing
* Code signing (mac and windows)
* Ideas appreciated :)

## Getting Started
Expand Down
10 changes: 10 additions & 0 deletions assets/nsis/Include/common.nsh
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
!verbose push
!verbose 4
!echo "Loading Common Utils"
!verbose pop

# avoid exit code 2
!macro quitSuccess
SetErrorLevel 0
Quit
!macroend
3 changes: 3 additions & 0 deletions docs/Options.md
Original file line number Diff line number Diff line change
Expand Up @@ -31,6 +31,9 @@ productVersion | string | Product version. Defaults to `${ version }`.
fileVersion | string | File version. Defaults to `${ productVersion }`
versionStrings | { [key: string]: string } | `rcedit` version strings. Defaults to `{}`.
icon | string | .ico icon file relative to the project root. Defaults to `undefined`.
signing | `{}` | contains parameters for Microsoft Authenticode signing (optional). If any parameters are included, all parameters are required.
signing.signtoolPath | string | Absolute path to signing tool, e.g. `"C:\\Program Files (x86)\\Windows Kits\\8.1\\bin\\x64\\signtool.exe"` on windows or `/usr/bin/codesign` on mac. The idea is to provide the full path to the signing executable, and all of the items will be added as arguments to that executable.
signing.cliArgs | string | Args to pass to the binary at `signing.signtoolPath` EXCEPT for executables to sign. Windows example: `"sign /debug /f E:\\codesigning.crt.pfx /p top$3c37pa$$ /tr http://timestamp.comodoca.com/?td=sha256 /td sha256 /fd sha256 /v"`. Mac example: `--force --verify --sign ${MY_SIGNING_IDENTITY}`

## build.mac <- [MacConfig](../src/lib/config/MacConfig.ts)

Expand Down
Loading