```
$ rcodesign help notary-submit
Submit a notarization request to Apple.
This command is used to submit an asset to Apple for notarization. Given
a path to an asset with a code signature, this command will connect to Apple's
Notary API and upload the asset. It will then optionally wait on the submission
to finish processing (which typically takes a few dozen seconds). If the
asset validates Apple's requirements, Apple will issue a *notarization ticket*
as proof that they approved of it. This ticket is then added to the asset in a
process called *stapling*, which this command can do automatically if the
`--staple` argument is passed.
# App Store Connect API Key
In order to communicate with Apple's servers, you need an App Store Connect
API Key. This requires an Apple Developer account. You can generate an
API Key at https://appstoreconnect.apple.com/access/api.
The recommended mechanism to define the API Key is via `--api-key-path`,
which takes the path to a file containing JSON produced by the
`encode-app-store-connect-api-key` command. See that command's help for
more details.
If you don't wish to use `--api-key-path`, you can define the key components
via the `--api-issuer` and `--api-key` arguments. You will need a file named
`AuthKey_<ID>.p8` in one of the following locations: `$(pwd)/private_keys/`,
`~/private_keys/`, '~/.private_keys/`, and `~/.appstoreconnect/private_keys/`
(searched in that order). The name of the file is derived from the value of
`--api-key`.
In all cases, App Store Connect API Keys can be managed at
https://appstoreconnect.apple.com/access/api.
# Modes of Operation
By default, the `notarize` command will initiate an upload to Apple and exit
once the upload is complete.
Once an upload is performed, Apple will asynchronously process the uploaded
content. This can take seconds to minutes.
To poll Apple's servers and wait on the server-side processing to finish,
specify `--wait`. This will query the state of the processing every few seconds
until it is finished, the max wait time is reached, or an error occurs.
To automatically staple an asset after server-side processing has finished,
specify `--staple`. This implies `--wait`.
Usage: rcodesign[EXE] notary-submit [OPTIONS] <PATH>
Arguments:
<PATH>
Path to asset to upload
Options:
-v, --verbose...
Increase logging verbosity. Can be specified multiple times
--wait
Whether to wait for upload processing to complete
--max-wait-seconds <MAX_WAIT_SECONDS>
Maximum time in seconds to wait for the upload result
[default: 600]
--staple
Staple the notarization ticket after successful upload (implies --wait)
--api-key-path <API_KEY_PATH>
Path to a JSON file containing the API Key
--api-issuer <API_ISSUER>
App Store Connect Issuer ID (likely a UUID)
--api-key <API_KEY>
App Store Connect API Key ID
-h, --help
Print help (see a summary with '-h')
```