
Security News
Socket Releases Free Certified Patches for Critical vm2 Sandbox Escape
A critical vm2 sandbox escape can allow untrusted JavaScript to break isolation and execute commands on the host Node.js process.
nwjs-macappstore-builder
Advanced tools
![]()
This node module has been made to easily build and publish NW.js apps on the Mac App Store.
It automates all the steps described in Publishing NW.js apps on the Mac App Store: a detailed guide.
Install with npm:
npm install -g nwjs-macappstore-builder
The configuration of the tool uses a standard JS object:
var config = {
// Build paths
nwjs_path: '/Applications/nwjs.app', // Last build tested with NW.js 0.12.2
source_path: '/Users/johan/Github/my-nwjs-project/app', // App root (the dir with the package.json file)
build_path: '/Users/johan/Desktop', // Destination dir of the .app build
// App informations
name: 'Your App',
bundle_id: 'com.yourcompanyname.yourapp',
version: '1.4.8',
bundle_version: '148',
copyright: '© Sample copyright',
icon_path: '/Users/johan/Github/my-nwjs-project/icon.icns',
// Signing configuration
identity: 'LK12345678', // Application signing
identity_installer: 'LK12345679', // Application installer signing (may be the same as identity)
entitlements: [
'com.apple.security.network.client',
'com.apple.security.assets.movies.read-only'
],
// App categories
app_category: 'public.app-category.utilities',
app_sec_category: 'public.app-category.productivity',
// Additional keys to add in the Info.plist file (optional, remove if not needed)
plist: {
NSSampleProperty1: 'Property value 1',
NSSampleProperty2: {
NSSub1: 'Sub-property value 1',
NSSub2: 'Sub-property value 1'
}
}
// Optimization
uglify_js: true // Uglifies all JS files found in the app (default is FALSE)
}
Just require the module and fire the build function.
var Builder = require('nwjs-macappstore-builder');
var show_output = true;
var builder = new Builder();
builder.build(config, function(error, app_path)
{
console.log(error ? error.message : 'Build done: ' + app_path);
}, show_output);
Each parameter of the config can be passed as a parameter:
nwjs-macappstore-builder --name=YourApp --bundle_id=com.yourcompanyname.yourapp [...]
As there are a lot of parameters, you may prefer this more readable alternative:
nwjs-macappstore-builder --config=/Users/johan/Desktop/build-config.json
The build-config.json file being a JSON object containing all the parameters described above.
| Version | Date | Notes |
|---|---|---|
 3.1.6 |  2016-05-09 |  Displays a warning on minification error & updates dependencies |
 3.1.5 |  2016-02-10 |  Fixes validation issue when using uppercase letters in bundle_id |
 3.1.4 |  2015-09-12 |  Updates dependencies |
 3.1.3 |  2015-08-15 |  Adds quotes around code-signing identity |
 3.1.2 |  2015-07-21 |  Fixes minify path |
 3.1.1 |  2015-07-21 |  Fixes relative config path |
 3.1.0 |  2015-07-20 |  Adds uglify_js option (will uglify all JS found in the app) |
 3.0.2 |  2015-07-09 |  Do not --force signing as it makes the app crash on some cases |
 3.0.1 |  2015-07-09 |  Adds the Fixing permissions step |
3.0.0 | 2015-07-09 | Adds the identity_installer optionAdds --force when signingDo not force bundle IDs when signing |
2.1.2 | 2015-07-08 | Updates repository URL |
2.1.1 | 2015-07-08 | NPM fix |
2.1.0 | 2015-07-08 | Adds packaging step |
2.0.0 | 2015-07-08 | Initial version |
This project is released under the MIT License.
FAQs
Easily build and publish NW.js apps on the Mac App Store.
The npm package nwjs-macappstore-builder receives a total of 5 weekly downloads. As such, nwjs-macappstore-builder popularity was classified as not popular.
We found that nwjs-macappstore-builder demonstrated a not healthy version release cadence and project activity because the last version was released a year ago. It has 1 open source maintainer collaborating on the project.
Did you know?

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Security News
A critical vm2 sandbox escape can allow untrusted JavaScript to break isolation and execute commands on the host Node.js process.

Research
Five malicious NuGet packages impersonate Chinese .NET libraries to deploy a stealer targeting browser credentials, crypto wallets, SSH keys, and local files.

Security News
pnpm 11 turns on a 1-day Minimum Release Age and blocks exotic subdeps by default, adding safeguards against fast-moving supply chain attacks.