Notarize OSX / Hardened Runtime
See original GitHub issueI’m trying to understand what needs to be done, so that I can notarize my NWjs application. I am using 33.3 as I have prebuilt binaries for that version and it seems to be nice and stable.
I can’t seem to find anything related to notarization and NWjs and I’m struggling to follow any steps due to terrible information from the notarization tool. I tried to notarize via command line:
xcrun altool --notarize-app --primary-bundle-id "space.devader.demo" --file "../DevaderSrc/nwjs-v0.33.3-osx-x64/devader.app" --output-format xml
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>os-version</key>
<string>10.14.5</string>
<key>product-errors</key>
<array>
<dict>
<key>code</key>
<integer>-1</integer>
<key>message</key>
<string>The operation couldn’t be completed. ( error -1.)</string>
</dict>
</array>
<key>tool-path</key>
<string>/Applications/Xcode.app/Contents/Applications/Application Loader.app/Contents/Frameworks/ITunesSoftwareService.framework</string>
<key>tool-version</key>
<string>1.1.1138</string>
</dict>
</plist>
Issue Analytics
- State:
- Created 4 years ago
- Comments:24 (10 by maintainers)
Top Results From Across the Web
Hardened Runtime | Apple Developer Documentation
To upload a macOS app to be notarized, you must enable the Hardened Runtime capability. For more information about notarization, see Notarizing macOS...
Read more >Notarization: the hardened runtime
Currently, the only method provided by macOS to discover whether an app uses the hardened runtime, and which entitlements it takes, ...
Read more >macOS Hardened runtime, notarization, code signing: app ...
I was already signing with a "Developer ID" key, so I just added entitlements, gatekeeperAssesment and hardenedRuntime to package.json and the ...
Read more >Dummies guide to notarizing your runtime | by George Adams
Apple has recently changed the requirements for applications to install on macOS 10.15 and above. The change requires developers to notarize the application ......
Read more >Getting Ready for macOS's Hardened Runtime and Notary
“Beginning in macOS 10.14.5, all new or updated kernel extensions and all software from developers new to distributing with Developer ID ...
Read more >Top Related Medium Post
No results found
Top Related StackOverflow Question
No results found
Troubleshoot Live Code
Lightrun enables developers to add logs, metrics and snapshots to live code - no restarts or redeploys required.
Start FreeTop Related Reddit Thread
No results found
Top Related Hackernoon Post
No results found
Top Related Tweet
No results found
Top Related Dev.to Post
No results found
Top Related Hashnode Post
No results found
Top GitHub Comments
SUCCESS! After two days of struggle.
After a bunch of struggling with @gpetrov’s script (it kept on matching things it shouldn’t sign), I rewrote it in Node and hardcoded more paths.
@weiluenju, you might want this, too.
sign-mac-app or whatever else you want to call the shell script; remember to
chmod 755
.neededToRun.entitlements is still needed.
I was able to fully notarize our nwjs app and get it approved by Apple! Thanks to the mailing list topic above.
I do had to sign all of the included nwjs frameworks and dylibs of the different libraries, separately! Which was a huge list! So for the convenience I made a bash script that finds all the modules and sign them.
Script is called
codesign.sh
that does all that automatically:also as
neededToRun.entitlements
file I have:for the further upload and notarization by apple I used the commands described in: https://successfulsoftware.net/2018/11/16/how-to-notarize-your-software-on-macos/
and it all worked great.
Maybe this should be included in the docs @rogerwang ? As from the next MacOS release 10.15 now in September, notarization will be required and nwjs apps won’t be able to run if not notarized by Apple!
https://developer.apple.com/documentation/security/notarizing_your_app_before_distribution