Apple’s Notary API provides a submission ID that can be used to retrieve the request’s status and log. That distinction matters: an upload can succeed while Apple’s assessment still fails. For Apple notarization CI failures, don’t immediately re-sign or rerun the whole pipeline. First identify the failed stage from the submission status and Apple log, then fix the specific issue in signing, credentials, packaging, network submission, or stapling.
Suitable for: macOS release engineers responsible for Developer ID signing and distribution; IT and security teams managing certificates, private keys, and automation credentials; and platform owners validating remote Mac CI nodes.
Not suitable as a substitute for: Apple’s current submission requirements, an application-specific security review, or a release approval process.
00Start by locating the failed stage
Treat notarization as separate checks, not one green-or-red CI task. Apple’s notarization overview describes notarization as part of distributing macOS software. In an automated release, the practical stages to distinguish are:
- Local signing: the app or installer is signed with the intended identity.
- Submission authentication: the CI job can authenticate to submit the item.
- Upload and submission: the request reaches Apple and returns a submission ID.
- Apple processing: the service assesses the submitted software and reports a result.
- Stapling and final verification: the ticket is attached where appropriate, and the file actually intended for release is checked.
A successful upload only supports the submission stage. It does not prove that Apple accepted the item, that a ticket was stapled, or that the final deliverable passes the team’s distribution checks.
Record the submission ID as soon as the job receives it. Then query that submission’s status and retrieve its log using the workflow described in Apple’s Notary API submission and status guidance. If there is no submission ID, investigate the job’s authentication, upload, and network output first. If an ID exists, preserve it and inspect the reported state before retrying.
Release gate: Don’t mark a release “notarized” based only on an upload command’s exit code. Require evidence of the service result and the checks appropriate to the distribution format.
01Separate signing failures from credential failures
A CI error mentioning a certificate does not automatically mean the Mac node is broken. Signing the software and authenticating the submission are different operations, with different inputs and owners. Apple’s code signing documentation explains the role of code signatures in establishing software identity and integrity.
Check which operation failed and where the error appears:
- The signing command fails before submission: inspect the signing identity available to the job, the keychain state, and whether the pipeline is signing the intended target.
- The item signs but submission authentication fails: review the automation credentials and how the job retrieves them. Don’t replace the application’s Developer ID identity as a first response to an authentication error.
- Apple returns a rejection log: use the log’s specific findings to decide whether the artifact’s signature, entitlements, or package structure needs correction.
- A service account or keychain access error appears only on a CI node: investigate that account’s permissions, keychain availability, and execution context before changing application signing settings.
The identity that signs an application is not interchangeable with the credentials used by an automated submission. Confirm the signing type required for the item being distributed, and verify which credentials the CI step actually uses. Apple’s common notarization issue guidance is the right place to check a specific error explanation. Avoid treating a general certificate message as proof of a single root cause.
For enterprise ownership, assign the artifact signature to the team responsible for the release build, while the CI platform or security team controls access to automation credentials and keychain material. Keep those responsibilities visible in logs and runbooks. A job that cannot tell which credential set it used is harder to audit and slower to recover.
02Inspect the final distributable, not just the build output
A project compiling successfully does not establish that the file sent for notarization is the correct, complete, and properly signed release artifact. Packaging steps can change what the pipeline submits. Apple’s guidance on packaging Mac software for distribution should be used alongside the notarization log when checking the submitted format and release packaging.
Use this diagnostic sequence:
- Identify the exact submitted file. Capture its path and filename in the job output, then compare it with the artifact produced by the packaging stage. Do not assume that the app checked earlier is the same item later uploaded.
- Verify the signature on the release item. Run the team’s signature validation against the final app or installer, not only an intermediate build product. Confirm that the intended identity was used and that the verification output is retained.
- Check nested components and entitlements when the log points there. A problem may be inside a component or related to the permissions declared by the app. Use Apple’s log findings to narrow the investigation; don’t change entitlements speculatively.
- Review the package boundaries. Confirm that the archive or installer contains the expected files and that the submission step sends the distribution format intended by the release workflow.
- Compare the artifact before and after packaging. If the final package differs from the signed app in a way that affects its structure or signature, repair the packaging process and revalidate the actual release file.
Apple’s log is the evidence for a service-side rejection; local signature verification is evidence about the file the pipeline produced. Neither alone proves the whole release is ready. Keep the log and local validation output together so the next reviewer can connect the rejection to the exact artifact.
Decision branches for the next action:
- If the local signature check fails before upload, fix the signing or packaging step, then validate the resulting distribution artifact.
- If the signature check passes but Apple’s log identifies a specific artifact issue, repair that issue and submit the corrected artifact.
- If the log is unavailable or the request is still unresolved, preserve the submission ID and response, then check whether the service has reported a final state before creating another submission.
- If the upload never produced a submission ID, investigate authentication, connectivity, and the CI job’s request handling instead of changing the signed application.
- If Apple reports acceptance but distribution checks fail, move to stapling and final-file validation rather than resubmitting an unchanged item.
03Use submission status and logs to distinguish an unresolved request from a rejection
A CI system may surface a generic failure even when the actual submission is still processing, already rejected, or accepted but followed by a later local error. Don’t infer the result from the last visible line of the build log. Query the request using its submission ID and preserve both the status response and Apple’s log, as described in the Notary API reference.
Keep three cases separate:
- No confirmed submission: The job lacks a usable submission ID or reports an upload/authentication problem. Inspect the request path, credential access, and network output. Rerunning a submission step may be reasonable only after confirming that the earlier request did not reach a state the pipeline can retrieve.
- A submission exists but has no final result available to the job: Keep the ID and query it again according to the documented workflow. Check whether the CI process ended early, lost the request context, or failed to collect the resulting log. Do not report a rejection without a rejection result.
- Apple reports a result that is not accepted: Save the log and map each finding to the signed artifact, its packaging, or its declared entitlements. Correct the identified issue before deciding whether a new submission is needed.
There is no reason to invent a fixed processing-time expectation. If the response does not explain the state, retain the request details and check Apple’s Developer System Status before blaming the Mac host or changing the artifact. A service-status check is one piece of evidence, not a substitute for the submission record or the notarization log.
Mac CI troubleshooting is most reliable when it preserves the request context. Make the pipeline store the submission ID, the status response, the log retrieval result, and the path or build identifier of the submitted artifact. If a job retries after losing that context, it can create duplicate work or leave the release team unable to determine which request produced the observed result.
04Answer the release team’s recurring notarization questions
What should you inspect after notarytool reports a successful submission?
Treat a successful submission as confirmation of a handoff, not an acceptance result. Use the returned submission ID to retrieve the current status and, when available, Apple’s log. Check that the CI job retained both outputs and that they refer to the artifact under review. If the job stopped before collecting the result, repair its status-polling and evidence handling before assuming the application needs a new signature.
Which log evidence points toward signing rather than a CI node problem?
First identify whether the error occurred during local signing, submission authentication, or Apple’s assessment. A keychain access or missing-credential error before upload belongs to the CI execution context; an Apple rejection log that identifies a signature or entitlement issue concerns the submitted item. Verify the final distributable locally and compare that output with the log. Don’t rotate certificates or rebuild the node without evidence linking either action to the failure.
Is stapling required after Apple accepts an app?
Acceptance and stapling are distinct checks. Apple documents the stapler tool and ticket validation as part of notarization workflows, but the team should choose the correct operation for its distribution format. When the workflow uses stapling, validate the stapled release file—not just the earlier app or a temporary package—and retain the validation output with the release evidence.
When should the team re-sign, re-upload, or fix packaging?
Re-sign only when signature inspection or Apple’s findings indicate the signature is wrong or incomplete. Fix packaging when the submitted file is not the intended distribution artifact, or when the log points to its structure. Re-upload a corrected item when the existing result is a rejection and the artifact has changed. If the request’s state is unknown, retrieve it first; a blind retry can obscure which submission the pipeline is handling.
05Make notarization part of Mac CI release acceptance
A production release gate should retain evidence for the whole path from the local artifact to the final distributable. Add these checks to the pipeline or its release record:
- [ ] Signature evidence: record the identity used and the validation result for the final item submitted.
- [ ] Submission evidence: retain the submission ID and the response that confirms the request was created.
- [ ] Assessment evidence: store the final status and Apple log, or record why they were unavailable.
- [ ] Ticket evidence: when the workflow uses stapling, retain the stapling result and validation output.
- [ ] Final-file evidence: verify the exact file that will be distributed, after packaging and any required stapling.
- [ ] Credential evidence: record which CI identity or credential reference was used without exposing secrets in logs.
Use the evidence to route ownership. Check the CI service account and keychain when the job cannot sign or authenticate in its execution context. Check network access and Apple’s service status when submission cannot be confirmed. Investigate the artifact when Apple’s log identifies a signing, packaging, or entitlement issue. Investigate stapling and delivery verification when acceptance is recorded but the final file fails a later check.
This boundary matters for remote Mac environments too. An online node is not proof that signing credentials are accessible to the intended job, that the request reached Apple, or that the release artifact passed final verification. Teams evaluating a hosted Mac workflow can review NUKCLOUD’s remote Mac service, but should validate their own signing, notarization, and final-file checks against a real release task. A remote Mac is a poor fit when the workload requires a local physical interface or when the team needs a permanently controlled machine for sustained, heavy use; purchasing and operating dedicated hardware may suit those requirements better.
When the issue is specifically the CI account, keychain, or node execution environment, a remote Mac can be a useful test environment without treating node availability as a release guarantee. Validate the complete path—from signature check through Apple’s result to the final deliverable—before relying on it for production. If the team needs temporary capacity for that validation, it can review NUKCLOUD’s Mac rental options; the decision should follow the workload and acceptance evidence, not a generic assumption that renting or purchasing is always cheaper.