xcode - doesn t include the beta reports active entitlement fastlane valid



Apple TestFlight upload warning ITMS-90191: missing `beta-reports-active` entitlement (5)

When I upload a build to the new Apple owned and iTunes Connect-integrated TestFlight, I see the following log:

WARNING ITMS-90191: "Missing beta entitlement. Your app does not include the beta-reports-active entitlement. If you intend to distribute this build via TestFlight for beta testing, please re-build this app with a newly generated provisioning profile."

When I look at the build on iTunes Connect, I also see the following warning:

To use TestFlight Beta Testing, build X.Y.Z must contain the correct beta entitlement. For more information, see the FAQ.

The linked FAQ states:

What should I do if my prerelease build does not contain the correct beta entitlement?

To use the TestFlight app to test your prerelease build, it must be signed with an App Store Distribution Provisioning profile that includes the beta entitlement. New Distribution Provisioning profiles generated in the iOS Developer Center will automatically contain the beta entitlement.

If you have an existing Distribution Provisioning Profile that was generated before the launch of TestFlight Beta Testing, you must regenerate the profile.

The problem is that I am using a newly created App Store Distribution Provisioning Profile. I created it like so:

When I inspect the source of the downloaded Provisioning Profile, I see:

<key>Entitlements</key>
<dict>
    // ...
    <key>aps-environment</key>
    <string>production</string>
    <key>beta-reports-active</key>
    <true/>
    // ...

So the Provisioning Profile is set for production and does contain the beta-reports-active entitlement.

However, iTunes Connect continues to complain when this build is uploaded to TestFlight.

Any ideas on how to fix this issue? Is this an Apple bug?

rdar://20128048

https://ffff65535.com


A simple solution: Delete your previous provisioning profile, and create a new one. solves my problem. :)


First, be sure that you are using an App Store Distribution Provisioning Profile. This is likely a different provisioning profile from the Ad Hoc Distribution Provisioning Profile you were using to sign pre-Apple TestFlight builds.

I continued to hit Error ITMS-90191 after I switched to an App Store Distribution Provisioning Profile. I fixed the issue by additionally adding the beta-reports-active key to my Target's Entitlements.plist file in the Xcode project.

The beta-reports-active key must be included in the Provisioning Profile AND the Target's entitlements.

TargetName.entitlements:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>

    // ...

    <key>beta-reports-active</key>
    <true/>

    // ...

</dict>
</plist>

After adding the entitlement to my Target, I'm able to successfully upload the build to iTunes Connect TestFlight without the ITMS-90191 warning:


I was able to fix this by adding this to my xcodebuild script.

xcodebuild ... PROVISIONING_PROFILE=<Provisioning Profile Id>

Looks like setting Code Sign Identities in Build Settings manually could fix this problem too.


If you're using Fastlane, make sure you set ad-hoc to false for the sigh step, otherwise it will generate an ad-hoc profile which is not suitable for TestFlight distribution. i.e.:

sigh(
  adhoc: false,
  team_id: "XXXXXXXXX"
)

Using an AppStore provisioning profile solved this for me. I managed to successfully distribute and install on devices. I was using an AdHoc provisioning profile as usual and suddenly I started to get this error. Frustrating stuff indeed.





testflight