Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

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

Tags:

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.

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:

App Store Distribution Provisioning Profile

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

like image 480
pkamb Avatar asked Mar 11 '15 22:03

pkamb


3 Answers

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:

enter image description here

like image 192
pkamb Avatar answered Sep 22 '22 06:09

pkamb


Manually editing the plist file didn't do it for me.
Editing an existing profile and generating the file also did NOT work this time.
But, just like for joehl, creating a brand NEW provision profile actually fixed it for me. So, create an all new Provision Profile and and you will be back in business. This looks like a glitch in TestFlight.

like image 2
John Minne Avatar answered Sep 23 '22 06:09

John Minne


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.

like image 2
dlobanov Avatar answered Sep 20 '22 06:09

dlobanov