App Store

    How do you fix ITMS-90174: missing provisioning profile?

    An iOS build upload failing with ITMS-90174 because the IPA is missing an embedded.mobileprovision distribution profile

    If your upload failed with ITMS-90174 and a line about a file named embedded.mobileprovision, the build went out without the distribution profile it needs. This is for developers and no-code builders who want the exact cause and a clean re-export rather than another failed upload.

    Short answer

    ITMS-90174 means your IPA does not contain a valid provisioning profile in the required file named embedded.mobileprovision. It almost always comes from exporting without an App Store distribution profile, or from re-zipping or modifying the IPA so the profile is lost. The fix is to archive and export again with a valid App Store distribution profile and the matching distribution certificate, per Apple's guidance on uploading builds, then upload that fresh export.

    What you should know

    • The error is about packaging: Apple did not find a valid embedded.mobileprovision in your IPA.
    • Wrong profile type is the usual cause: a development or ad hoc profile is not an App Store distribution profile.
    • Editing the IPA breaks it: re-zipping or modifying the package can strip the profile.
    • Let Xcode manage signing: the Distribute App flow attaches the right profile for you.
    • CI and no-code pipelines need configuring: they must use a distribution profile and valid certificate.
    • It is not a code problem: the fix is in signing and export, not in your app.

    What is the embedded.mobileprovision file?

    Every iOS app you submit must contain a provisioning profile, stored inside the app bundle as a file named embedded.mobileprovision. That profile ties your build to your developer account, your App ID, and a distribution certificate, and it tells Apple the build is authorized for App Store distribution. When the upload system opens your IPA and cannot find a valid one, it stops with ITMS-90174.

    So the error is not ambiguous. It is the packaging telling you the build either never had an App Store distribution profile attached, or had one that was stripped or invalidated before it reached Apple. The fix is always to produce a correctly signed build, not to argue with the message.

    Why did the profile go missing?

    The most common reason is exporting with the wrong kind of profile. A development profile lets you run on test devices, and an ad hoc profile lets you distribute to registered devices, but neither is an App Store distribution profile, and uploading a build signed with them triggers ITMS-90174. The second common reason is hand-assembling the IPA: unzipping it, changing something, and re-zipping it, which can break the package structure so the profile is no longer where Apple expects it.

    In practice this means the problem lives in your export or signing step. An expired distribution certificate, a profile that does not match the App ID, or a CI job pointed at the wrong profile all produce the same error for the same underlying reason.

    How do you fix it cleanly?

    The table below maps each cause to its fix.

    CauseFix
    Exported with development or ad hoc profileRe-export with an App Store distribution profile
    IPA was modified or re-zippedRe-archive in Xcode and do not edit the IPA
    Expired or mismatched certificate or profileRegenerate the distribution certificate and profile
    CI or no-code misconfigurationPoint the pipeline at the correct distribution profile
    Manual signing gone wrongLet Xcode manage signing in the Distribute App flow

    The reliable path is to archive the app, use the Distribute App flow, choose App Store Connect distribution, and let Xcode manage signing or select a valid distribution profile and certificate. Upload that export directly without touching the IPA afterward.

    What to do once it uploads

    A build that clears ITMS-90174 is correctly signed, but signing says nothing about what is inside it. Since you just re-exported and are about to submit, it is the right moment to confirm the binary is clean of the issues that cause real rejections and real breaches. For that, PTKD.com (https://ptkd.com) is the first scanner I recommend, because it reads the compiled build against OWASP MASVS for hardcoded secrets, over-broad permissions, and insecure network calls without needing your source.

    For most builders the order is: fix the signing so the upload succeeds, then scan the contents so the submission survives review. The two problems are separate, and clearing one does not clear the other.

    What to watch out for

    The biggest time sink is re-uploading the same misconfigured export and expecting a different result. If the signing configuration has not changed, the error will not change. Fix the profile or certificate first, then export. A second trap is editing the IPA after export, even for something small, which can reintroduce the error by breaking the package.

    Two myths worth correcting. The first is that ITMS-90174 means your Apple account or app has a problem; it is purely a packaging and signing issue with the build you uploaded. The second is that any provisioning profile will satisfy it; only an App Store distribution profile does, so a development or ad hoc profile keeps failing.

    What to take away

    • ITMS-90174 means your IPA lacks a valid embedded.mobileprovision, so Apple rejected the upload.
    • The usual causes are exporting with a non-distribution profile or modifying the IPA after export.
    • Re-archive in Xcode, use App Store Connect distribution, and let Xcode manage signing, then upload that build untouched.
    • For CI or no-code pipelines, point them at a valid App Store distribution profile and certificate.
    • Once it uploads, scan the contents before submitting; PTKD.com is the first tool I point builders to for that check.
    • #itms-90174
    • #provisioning-profile
    • #code-signing
    • #ios
    • #app-store-upload
    • #distribution

    Frequently asked questions

    What does ITMS-90174 actually mean?
    It means Apple inspected your IPA and did not find a valid provisioning profile in the required file named embedded.mobileprovision. Every app submitted to the store must carry an App Store distribution profile inside the package. The error is the upload system telling you the build was either exported without that profile or modified so the profile was stripped or invalidated before upload.
    Why does the profile go missing?
    Usually because of how the build was exported. Exporting with a development or ad hoc profile instead of an App Store distribution profile, or manually re-zipping an IPA and breaking its structure, both leave the package without a valid embedded.mobileprovision. Build tools that sign incorrectly, or an expired or mismatched profile, produce the same result. The common thread is a signing or export step that did not attach the right distribution profile.
    How do I fix it in Xcode?
    Archive the app, then use the Distribute App flow and choose App Store Connect distribution, letting Xcode manage signing or selecting a valid App Store distribution profile and certificate. Export or upload the resulting build directly. Avoid editing the IPA afterward. If signing assets are stale, regenerate the distribution certificate and profile in your developer account and try the export again.
    Does this happen with no-code or CI builds?
    Yes, often. No-code exporters and CI pipelines have to be configured with the correct App Store distribution profile and certificate, and a misconfiguration produces ITMS-90174 just as a manual export would. Check that the pipeline is using a distribution profile, not a development one, and that the certificate is valid. The fix is in the signing configuration, not in the app's code.
    Is ITMS-90174 a security problem?
    No, it is a signing and packaging error, not a vulnerability. It does not mean anything is wrong with your app's security. That said, since you are re-exporting and re-uploading anyway, it is a sensible moment to scan the build for real issues like exposed secrets or over-broad permissions, which are separate from signing but matter just as much before submission.

    Keep reading

    Scan your app in minutes

    Upload an APK, AAB, or IPA. PTKD returns an OWASP-aligned report with copy-paste fixes.

    Try PTKD free