Xcode archive failed with error "provisioning profile doesn't include the signing certificate"
Fixes provisioning profile doesn't include the signing certificate in a mobile release pipeline by working through the specific checks and corrections for this failure. Use when this exact error or symptom blocks an archive, upload, review or rollout step. Not for unrelated build failures or for general release planning with no error present.
TL;DR
Regenerate or edit the provisioning profile so it includes the certificate Xcode is signing with, download it again, and rebuild. In the developer portal, open the profile, confirm the signing certificate checkbox is selected, save to mint a fresh profile, then let Xcode or fastlane match install the updated copy. Signing with a certificate the profile does not list always fails this way.
provisioning profile doesn't include the signing certificateUse this when
- Xcode archive or build for distribution stops with this profile error.
- You renewed or created a new distribution certificate on a CI machine.
- Automatic signing is off and profiles are managed manually or with match.
Not for this skill when
- The error names an expired certificate instead of a missing one. Renewal is a different flow.
- You have no distribution certificate at all yet. Create one in the portal first.
Steps
- List the identities Xcode can actually use by opening Keychain Access or the signing report in the build log and note the exact certificate name and expiry. Verify: one valid Apple Distribution identity is present with its private key
- Open the profile in the developer portal, choose Edit, and check that this exact certificate is selected in the certificates step. Verify: the profile detail page lists the certificate under its included certificates
- Save the edited profile even if nothing looked changed, because saving re-mints it with a new creation date, then download it. Verify: the downloaded file has todays date and a new UUID in its name or contents
- Remove the stale profile copy from the local provisioning profiles folder or re-run fastlane match to replace it everywhere. Verify: only the new profile UUID remains for this bundle id and type
- Set the target signing settings to the refreshed profile for the Release configuration, for app and extensions alike. Verify: the build settings pane shows the new profile name with no red warning
- Archive again and inspect the embedded profile inside the exported IPA before uploading. Verify: the embedded profile UUID equals the refreshed profile UUID
- Record the fix in the release runbook or the CI job notes, naming the error, the value or setting that changed, and the date, so the next release engineer does not re-diagnose it from scratch. Verify: the runbook or job notes contain an entry for this error that a teammate can find by searching the error text
Why it happens
A provisioning profile is a signed list of allowed certificates, devices or store distribution rights. When a team creates a new certificate, for example on a fresh CI runner, existing profiles do not learn about it automatically. Xcode compares the signing identity against the profile list at archive time and refuses to embed a profile that does not authorise that certificate.
In practice this failure is rarely a one-off. It tends to recur at the worst point in the release cycle, when a certificate, a toolchain, a store policy or a team process has quietly changed since the last successful release and nobody connected that change to the release pipeline. That is why the steps above insist on reading the actual store, portal or build state at each point instead of trusting configuration files or memory: the configuration usually describes the release the team intended to ship, while this error describes the release the systems actually see. Once the immediate upload or build is unblocked, treat the underlying drift as the real defect. Pin the toolchain version, expiry date, identifier or policy value that caused it in the release checklist, and add the cheapest automatic check that would have caught it before submission day, for example a preflight lane that validates signing, versions and metadata lengths before the full archive runs. A release pipeline that fails in preflight costs minutes; the same failure discovered at submission costs a day.
Variants and edge cases
profile does not include signing certificate Xcode 15
Version-specific phrasing; the portal fix is the same across Xcode versions. When you land on this skill from that phrasing, start at step 1 rather than jumping to the most dramatic fix: the early steps are cheap state checks that confirm you are solving the failure you actually have, and they take minutes compared with a rebuild or a store-side change you cannot undo.
fastlane match provisioning profile certificate missing
When match manages profiles, re-run match with force to regenerate the profile after adding the certificate. When you land on this skill from that phrasing, start at step 1 rather than jumping to the most dramatic fix: the early steps are cheap state checks that confirm you are solving the failure you actually have, and they take minutes compared with a rebuild or a store-side change you cannot undo.
Edge case: multiple distribution certificates
Teams often hold two distribution certificates. The profile must include the one CI uses, not just any valid one. When you land on this skill from that phrasing, start at step 1 rather than jumping to the most dramatic fix: the early steps are cheap state checks that confirm you are solving the failure you actually have, and they take minutes compared with a rebuild or a store-side change you cannot undo.
Provenance
Resolved from the public thread: https://vectle.com/posts/pst_eKvhVmrr1sy7-afXnUUCOg