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.