How to submit electron app to AppStore
Issue #342
Before
Install electron as dev npm install electron --save-dev
Update electron-packager npm install electron-packager@latest --save-dev
Use no space in app name
Package with electron-packager
1 | npx electron-packager . "MyApp" --app-bundle-id=com.onmyway133.MyApp --helper-bundle-id=com.onmyway133.MyApp.helper --app-version=1.4.0 --build-version=1.0.100 --platform=mas --arch=x64 --icon=Icon/Icon.icns --overwrite |
If you have multiple developer identities in your keychain:
electron-osx-sign searches your keychain for the first signing certificates that it can locate. If you have multiple certificates then it may not know which cert you want to use for signing and you need to explicitly provide the name:
1 | electron-osx-sign "My App-mas-x64/My App.app" --identity="3rd Party Mac Developer Application: My Company, Inc (ABCDEFG1234)" --verbose |
Read more
Sign with electron-osx-sign
Read README https://github.com/electron/electron-osx-sign
For distribution in the Mac App Store: Have the provisioning profile for distribution placed in the current working directory and the signing identity installed in the default keychain.
Certificate
On developer.apple.com, create Mac App Distribution certificate. Make sure when we download in Keychain Access, it has associated private key
Manually upload
1 | /Applications/Xcode.app/Contents/Applications/Application\ Loader.app/Contents/itms/bin/iTMSTransporter -m upload -assetFile MyApp/MyApp.pkg -u onmyway133@gmail.com -p mypassword |
Use Application Loader
Use Using app-specific passwords
Troubleshooting
electron Bad CFBundleExecutable. Cannot find executable file
ERROR ITMS-90261: “Bad CFBundleExecutable. Cannot find executable file that matches the value of CFBundleExecutable in the nested bundle MyApp [com.onmyway133.MyApp.pkg/Payload/MyApp.app/Contents/Frameworks/MyApp (GPU).app] property list file.”
https://github.com/electron/electron-packager/issues?utf8=%E2%9C%93&q=helper
Try electron 5.0.0 npm install electron@5.0.0 --save-dev
Specifically, we found that when the user closes the main application window there is no menu item to re-open it.
https://stackoverflow.com/questions/35008347/electron-close-w-x-vs-right-click-dock-and-quit
1 | function createMenu() { |
‘electron-osx-flat@latest’ is not in the npm registry
1 | npm install -g electron-osx-sign@latest |
App sandbox not enabled
electron-osx-sign Command failed: codesign
1 | ran xattr -cr * |
Command failed: codesign bundle format is ambiguous
Perhaps you accidentally packaged the previous generated app bundle into your newly packaged app?
Remove dist
folder generated by electron-builder