Missing Provisioning Profile :Apps must contain a provisioning profile in a file named embedded.mobileprovision

Solution 1:

I tried to clear out the provisioning profiles and none of it did help. What changed from the previous XCode version to this one is the build system. By changing your build system back to the legacy one, this was resolved for me.

You can switch out the build system under file > workspace settings (or project settings) and then select Legacy Build System under Build System (see screenshot).

Good luck!

select build system under preferences

Edit: As of cordovo iOS 5.0.0 the new build system is now supported. Changelog can be found over here: https://cordova.apache.org/announcements/2019/02/09/cordova-ios-release-5.0.0.html

Solution 2:

If running/building from the CLI, use this command to use the legacy build system instead of the new one

cordova build ios --buildFlag="-UseModernBuildSystem=0"

Solution 3:

You can also create a new build.json file at the root of your cordova project, if you don't already have one, and add the following json data. This basically tell the build process for "ios" to use the legacy build system. It will automatically add the build flags in the build.json file to your build command e.g. cordova build ios --prod will also run as though it was typed as cordova build ios --prod --buildFlag="-UseModernBuildSystem=0".

{
    "ios": {
        "debug": {
            "buildFlag": [
                "-UseModernBuildSystem=0"
            ]
        },
        "release": {
            "buildFlag": [
                "-UseModernBuildSystem=0"
            ]
        }
    }
}

Solution 4:

Clean your build (Cmd + Shift + K). Quit XCode (don't just close the project, make sure XCode has completely quit).

Delete everything in the ~/Library/MobileDevice/Provisioning Profiles folder.

Re-start XCode and load your project.

If you have XCode set to Automatically Manage Signing, you should be able to select your team and then it should re-download your provisioning profiles for you. If you don't, you'll have to manually download them from your Apple Developer account and then select "import" from the Debug signing dropdown and the Distribution signing dropdown.

If you then try to run the app on a device and you get a "Valid Provisioning Profile cannot be found for this executable" you need to go to Window | Devices & Simulators. Find your device on the left side of the window, ctrl+click on it, select "See Provisioning Profiles". Click on each individual profile and click the minus sign at the bottom. When the list is empty, click on the plus sign to add a new one, then find the profiles you downloaded and import each of them, one at a time to that list.

That should hopefully fix any provisioning profile issues that XCode is giving you.

Good luck!