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
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:
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.
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 love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With