This is an work of devbotsxyz, who's account is now removed from GitHub. We appreciate his contribution to the community!
This action notarizes macOS applications or plug-ins. It does this by submitting your built .app
(or non-app bundle) to Apple's notarization service. It will poll the notarization service until it times out of receives a success response.
Notarization is a complicated process, but the gist of it is this: if you want to distribute your macOS application outside of the Mac App Store, you need to Sign and Notarize your application. This Action only needs two inputs for that: the
product-path
that points your application and your AppStore Connect credentials withappstore-connect-username
/appstore-connect-password
. (This need to be an App Specific Password as regular accounts require 2FA)
- name: "Notarize Release Build"
uses: devbotsxyz/xcode-notarize@v1
with:
product-path: "Export/Rings.app"
appstore-connect-username: ${{ secrets.NOTARIZATION_USERNAME }}
appstore-connect-password: ${{ secrets.NOTARIZATION_PASSWORD }}
Note that notarization is not the final step. After Apple has notarized your application, you also want to staple a notarization ticket to your product. This can be done with the Xcode Staple action.
The devbotsxyz/example-macos-rings project is an example macOS project with a release.yml workflow that shows all the steps needed to go from creating a release in GitHub to ending up with a .zip
file that contains a signed and notarized application.
- Carthage Bootstrap - Bootstrap your Carthage Dependencies/
- Xcode Staple - Staple a Notarization Ticket to your product.
This Action is licensed under the MIT license. Contributions are very much welcome and encouraged but we would like to ask to file an issue before submitting pull requests.