A GitHub action to Apple notarize files. Originally adapted from https://github.com/devbotsxyz/xcode-notarize
  • JavaScript 100%
Find a file
Repository files (latest commit first)
Filename Latest commit message Latest commit date
dependabot[bot] 9ef196face
Bump uuid and @actions/core (#39)
Removes [uuid](https://github.com/uuidjs/uuid). It's no longer used after updating ancestor dependency [@actions/core](https://github.com/actions/toolkit/tree/HEAD/packages/core). These dependencies need to be updated together.


Removes `uuid`

Updates `@actions/core` from 1.10.0 to 1.11.1
- [Changelog](https://github.com/actions/toolkit/blob/main/packages/core/RELEASES.md)
- [Commits](https://github.com/actions/toolkit/commits/HEAD/packages/core)

---
updated-dependencies:
- dependency-name: uuid
  dependency-version:
  dependency-type: indirect
- dependency-name: "@actions/core"
  dependency-version: 1.11.1
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-06-24 12:55:48 -05:00
.github Bump @babel/traverse from 7.21.4 to 7.24.1 (#29) 2026-06-23 18:45:49 -05:00
bin first pass on landoifing (#10) 2023-04-27 10:32:04 -04:00
dist Contrib plus (#28) 2024-04-05 11:25:52 -04:00
.editorconfig first pass on landoifing (#10) 2023-04-27 10:32:04 -04:00
.eslintignore first pass on landoifing (#10) 2023-04-27 10:32:04 -04:00
.eslintrc.json first pass on landoifing (#10) 2023-04-27 10:32:04 -04:00
.gitattributes first pass on landoifing (#10) 2023-04-27 10:32:04 -04:00
.gitignore Contrib plus (#28) 2024-04-05 11:25:52 -04:00
.node-version Contrib plus (#28) 2024-04-05 11:25:52 -04:00
.npmignore first pass on landoifing (#10) 2023-04-27 10:32:04 -04:00
.tool-versions Contrib plus (#28) 2024-04-05 11:25:52 -04:00
action.yml Contrib plus (#28) 2024-04-05 11:25:52 -04:00
CHANGELOG.md switched to new @lando/prepare-release-action 2023-06-18 10:15:24 -04:00
entitlements.xml first pass on landoifing (#10) 2023-04-27 10:32:04 -04:00
LICENSE PERMISSION GRANTED 2025-07-18 22:17:30 -04:00
notarize-action.js switched to new @lando/prepare-release-action 2023-06-18 10:15:24 -04:00
package-lock.json Bump uuid and @actions/core (#39) 2026-06-24 12:55:48 -05:00
package.json Bump uuid and @actions/core (#39) 2026-06-24 12:55:48 -05:00
README.md AD HOC ADD COC 2025-07-23 16:47:05 -04:00

Notarize Action

This action Apple-notarizes macOS applications or plug-ins. It does this by submitting your built .app (or non-app bundle) to Apple's notarization service.

It uses notarytool by default but can be configured to use altool. In the case of the latter it will poll the notarization service until it times out or receives a success response.

NOTE: Originally forked from https://github.com/devbotsxyz/xcode-notarize

Required Inputs

These keys must be set correctly for the action to work.

Name Description Example Value
product-path The path to the product to notarize. /dist/MyApp.app
appstore-connect-username The AppStore Connect username. ${{ secrets.NOTARIZATION_USERNAME }}
appstore-connect-password The AppStore Connect password. ${{ secrets.NOTARIZATION_PASSWORD }}
appstore-connect-team-id The AppStore Connect team id. Only required when using notarytool. FY8GAUX283

Optional Inputs

These keys are set to sane defaults but can be modified as needed.

Name Description Default Example
appstore-connect-api-key The AppStore Connect API Key. null ${{ secrets.NOTARIZATION_API_KEY }}
appstore-connect-api-issuer The AppStore Connect API Issuer. null ${{ secrets.NOTARIZATION_API_ISSUER }}
primary-bundle-id A unique identifier that identifies this product notarization. bundle identifier of the app you are uploading. dev.lando.my-app
tool The xcrun notarization tool to use. notarytool altool
verbose Verbose mode will print Notarization API responses. false true

Usage

Basic Usage

- name: Notarize Release Build
  uses: lando/notarize-action@v2
  with:
    product-path: "/dist/MyApp.app"
    appstore-connect-username: ${{ secrets.NOTARIZATION_USERNAME }}
    appstore-connect-password: ${{ secrets.NOTARIZATION_PASSWORD }}
    appstore-connect-team-id: FY8GAUX283

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.

Changelog

We try to log all changes big and small in both THE CHANGELOG and the release notes.

Releasing

Create a release and publish to GitHub Actions Marketplace. Note that the release tag must be a semantic version.

Maintainers

Contributors

Made with contrib.rocks.

Other Resources