fastlane deliver "Could not find provisioning profile" in CI
fastlane could not locate the provisioning profile required to export and deliver the build. The profile referenced by name or UUID in the export options or Matchfile is not present in the runner keychain, so export to an .ipa fails before the upload.
What this error means
deliver or gym fails with "Could not find provisioning profile for bundle identifier com.example.app" or "No profiles for 'com.example.app' were found". The signing identity may exist but the matching profile does not.
[!] Could not find provisioning profile for bundle identifier 'com.example.app' and
signing identity 'Apple Distribution'. Make sure to install the profile before exporting.Common causes
The profile was never installed on the ephemeral runner
Fresh CI runners have no profiles. If match or a download step did not run, the export cannot find the profile.
The named profile does not match the bundle id
The export options reference a profile name or UUID that does not correspond to the app being exported.
How to fix it
Install the profile with match before exporting
- Run match appstore (readonly) to fetch the distribution certificate and profile.
- Confirm the bundle id matches the profile mapping.
- Then run gym / deliver so export finds the installed profile.
fastlane match appstore --readonly --app_identifier com.example.app
fastlane gym --export_options ExportOptions.plistMap the profile explicitly in export options
Name the exact profile for each bundle id so export does not guess.
<key>provisioningProfiles</key>
<dict><key>com.example.app</key><string>match AppStore com.example.app</string></dict>How to prevent it
- Fetch certificates and profiles with match at the start of the job.
- Map each bundle id to its profile in export options.
- Keep the profile, certificate, and bundle id in sync.