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

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.

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.

I edited my entitlements.plist with the following command:
/usr/libexec/PlistBuddy -c "Add :beta-reports-active bool true" entitlements.plist

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

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"
)

I just successfully submitted a new app version to TestFlight and realized after Apple accepted my submission that I did not have beta-reports-active in my Entitlements.plist.
In my previous version submissions for TestFlight, my submission would have been rejected for the "Missing beta entitlement"
Has anyone else noticed that the beta-reports-active is no longer required for TestFlight?

Related

macOS - Unable to create provisioning profile to distribute outside the Mac App Store

I have a Mac App that uses NetworkExtention, and I'm trying to distribute it outside the AppStore.
I'm following the steps that Apple mentioned on their website.
Unfortunately, I'm unable to create a provisioning profile from both Xcode & Apple Developer account...
I'm getting the following error in Xcode:
Provisioning profile "Mac Team Provisioning Profile: com.app.****" doesn't match the entitlements file's value for the com.apple.developer.networking.networkextension entitlement.
I'm getting this error because I changed the values of the .entitlements file as mentioned here to
<key>com.apple.developer.networking.networkextension</key>
<array>
<string>app-proxy-provider-systemextension</string>
<string>content-filter-provider-systemextension</string>
<string>packet-tunnel-provider-systemextension</string>
</array>
If I try to create the provisioning profile through the Apple Developer Account, I'm Always getting this, even though I had created a certificate for a Developer ID
Thanks in advance.
Hi I had the same issue and this was able to fix the error by contacting the Apple admin.
Failure to create a provisioning profile using Developer ID when there is an actual certificate is an Apple problem, and the problem has been resolved in Apple Korea.
I hope this reply was helpful.

Xcode 8 - Provisioning Profile vs. Provisioning Profile (Deprecated)

I have just updated to Xcode 8 and I now have two options for app signing, Provisioning Profile and Provisioning Profile (Deprecated).
Why is one deprecated, and what is the difference between the two?
Update 2017/02/13
User interface for managing signing certificates and provisioning profiles has been changed at Xcode 8.3 beta 2.
Changed the user interface for managing signing certificates and
provisioning profiles. Certificates are managed from the Accounts
preferences pane by selecting a team and clicking Manage Certificates.
Automatically managing signing is recommended, however if your app
requires manually signing provisioning profiles are managed in the
General tab of the project editor. Use the Provisioning Profile
dropdown to import or download profiles. In addition it displays
profiles that match the current signing configuration of the target.
(28641027)
Why is one deprecated?
I think Its deprecated because the signing system has been rewritten in Xcode8.
The signing system has been rewritten to include a new mode for
automatically managing signing assets, in addition to a dedicated
manual mode where the profiles for the target must be explicitly
selected. When automatically managing signing assets, Xcode will
create signing certificates, update app IDs, and create provisioning
profiles. For manual mode, only custom created profiles can be
selected and Xcode will not modify or create any signing assets. Xcode
now encodes profiles in the target using the
PROVISIONING_PROFILE_SPECIFIER build setting. This setting allows
specifying both the team ID and the name or identifier of the profile.
There are some Signing relate known Issues with Xcode 8.1 you should known.
So maybe we should not set Provisioning Profile in Build Setting tab, switch to General tab , and set in Signing category instead.
If you set provisioning profile in Build Setting and enable Automatically manage signing in General tab Xcode will complain about that.
What is the difference between the two?
I also updated to XCode 8 and ran into this as well. Both the Provisioning Profile and Provisioning Profile (Deprecated) were set as blank on my project in XCode 8.
I tried setting them back to what they were for each environment but the Debug environment had all of the options in the dropdown removed.
After creating an Archive and uploading to iTunes Connect I got a notice that the provisioning profile wasn't quite correct, which was working fine prior to XCode 8.
Following what the others have posted about XCode 8 getting an update to its Signing, I went to the general tab and noticed a new section that allows you to have XCode automatically manage the signing. I checked that box and now it looks like this:
I have not uploaded a new Archive to iTunes Connect yet but when I do I'll add an update here to see if it's resolved the Provisioning Profile warning.
UPDATE:
After selecting Automatically manage signing in XCode and re-sending to the App Store it's still complaining so that didn't quite work. Might have to remove and re-create all provisioning profiles to get this working. What a pain. Thanks Apple.
In Provisioning Profile (Deprecated) description, information is The UUID of a valid provisioning profile. A missing or invalid profile will cause a build error (deprecated, use [PROVISIONING_PROFILE_SPECIFIER] instead).
I found the link https://possiblemobile.com/2016/06/code-signing-xcode-8/.
Please follow these steps
Select project TARGET and go to GENERAL tab
Under Signing check the option Automatically manage signing
Hope that helps !

"Message from debugger: Terminated due to code signing error" when debugging a Mac app?

I'm writing a Mac app in the sandbox, and can't seem to get code signing to work. I've selected "Developer ID" from the Info tab for my target, and I've tried letting Xcode set up my provisioning profile automatically as well as creating the profile myself. The app builds without any errors or warnings, but when I try to "build and run," it gives me the following error:
In console.app, I noticed I was getting the following message:
3/5/15 4:46:37.151 PM taskgated[73]: killed com.nateparrott.Boxcar[pid 27408] because its use of the com.apple.developer.ubiquity-container-identifiers entitlement is not allowed (error code -67050)
It turns out that the default entitlements file in my project included an empty list of iCloud container, which caused the sandbox to think the app needed iCloud permissions (which weren't included in the default provisioning profile). Removing the iCloud entry from the entitlements file solved the problem.
Try to regenerate your certificates from the Dev Center. This happens most of the times when you switch to a new mac or after upgrading to a newer OS X version.
You have downloaded and installed your cert (in Keychain Access) from the portal. If you created the cert today on the same Mac you're trying to run it on this won't be your issue.
Your cert from above is in the provisioning profile you imported into XCode.
You actually imported your provisioning profile into XCode. It should be selectable form your Build Settings drop-down.
The bundle identifier you created in the portal matches what you have designated in your project under the Target Info.
I tried Setting Build Settings->code signing identity to "Mac Developer" and Provisioning Profile to "Automatic". The debugger worked fine after that.
This also can happen when debugging on iOS Simulator, when developing for Mac Catalyst, when ENABLE_HARDENED_RUNTIME set to YES.
Below Xcode configuration helps to avoid this error:
ENABLE_HARDENED_RUNTIME[sdk=macosx*] = YES
ENABLE_HARDENED_RUNTIME[sdk=iphonesimulator*] = NO
ENABLE_HARDENED_RUNTIME[sdk=iphoneos*] = NO
modify targets>Build Setting>code signing identity to your sign development.

xcode no matching provisioning profiles found

I have an Adhoc iOS application that give me a "no matching provisioning profiles found in xcode 6", I have created a Adhoc profile, downloaded it, doubleclicked it and selected a Team under General - Identity. But I then get that message, and try to use the "Fix issue" button does not help. In Build settings - Provisioning Profile - Release I have "Automatic".
Can anyone please help me, I'm totally lost...
Another cause of this nasty little error:
I didn't realise, but your XCode Project has one set of Code-Signing & Provisional Profile settings, but the Targets in your Project have another.
Today, I had set the correct Provisioning Profile values in Project, but XCode 6.1 was quoting a different Provisioning Profile name in its Build Error of "The provisioning profile specified in your build settings ("Mikes Provisioning Profile") has an AppID of.."
So, be careful that you check your settings in both places, if XCode quotes a Provisional Profile name which you weren't expecting.
It's amazing that XCode has reached v6.1, and its still as developer-unfriendly as ever.
If anyone needs me, I'll be at the pub...
Please install the Distribution Certificate in your Mac
Edit your Ad-Hoc Provisioning Profile in Developer account
Save the Provisioning Profile
Download the Provisioning Profile
Double Click to install in your Xcode 6
Go to Xcode Preferences, please check whether your developer account is configured or not, if yes please refresh the list, if not please configure your developer account.
Clean the project
Now check for the Ad-Hoc Provisioning Profile and Distribution certificate in your Build Settings
Important is by using the Ad-Hoc Provisioning Profile you can not run the app in your device, you need to make an IPA and make a Testflight link and install the app in your device by using the Testflight link
I had this issue and did the following to resolve.
Go to Account section, download all provisioning profiles in account.
Clean and Build again.
Hope this help you.

iPhone Debugging: How to resolve 'failed to get the task for process'?

I have just added a provisioning profile to XCode (needed to support notifications and in app purchase), setup as needed the build configuration for ad hoc distribution, and tried to run the app on the device (I have done this several times in the past, without any problem).
The app is installed, but it does not start. On the console, I see the following message:
Error launching remote program: failed to get the task for process 82.
Error launching remote program: failed to get the task for process 82.
The program being debugged is not being run.
The program being debugged is not being run.
However, if I start the application on the device manually, it works as expected. I have recently installed the latest XCode 3.2 for Snow Leopard. Is this a known bug of this version of XCode or am I doing something wrong?
EDIT: It works fine with release distribution using the development provisioning profile.
I have checked again the ad hoc provisioning profile to make sure it includes the device I am using.
The ad-hoc profile doesn't support debugging. You need to debug with a Development profile, and use the Ad-Hoc profile only for distributing non-debuggable copies.
I have had problems debugging binaries on the device via XCode when the app includes an Entitlements.plist file, which is not necessary to install onto the device for debugging. In general, then, I have included this file for release builds (where it is required for the App Store) and removed it for debugging (so I can debug the app from XCode). That may be your problem here.
Update: As of (at least) August 2010 (iPhone 4.1 SDK) the Entitlements.plist is no longer necessary to include in your application in many cases (e.g., distribution through the App Store.) See here for more information on the cases when Entitlements.plist is required:
IMPORTANT: An Entitlements file is generally only needed when building for Ad Hoc Distribution or enabling Keychain data sharing. If neither of these is true, delete the entry in Code Signing Entitlements. (emphasis mine)
I Had the same issue, but resolved it by following simple following steps :
Make sure you have selected debug rather than release.
In Debug configurations, in project settings, you should have selected developer's profile & no need of specifying the entitlements plist.
Also same setting are there under: Targets: , if not manuall change them to the above for the debug config. It will work.
All the best.
This took me a while to figure out.
If you are using a distribution / ad hoc/ profile you cannot test it through xcode. You will get the error: The program being debugged is not being run.
You can build the app, go to the products folder in your app in xcode, click on the file with your project name and choose reveal in finder. You can drag this app into into iTunes and sync and that point you can test your app on your device.
If you are getting such error, the only reason could be you using a Distribution profile rather than a development profile in Xcode or a missing Entitlement property. If you are not using the Entitlements.plist, then the only possible error could be the app is getting packaged with a distribution profile. You could verify this confirming the build logs. To change this, go to Build Setting of the project and verify Code Signing Entity setting. For debugging to work, this setting should be a developer profile for the configuration that you are currently using.
https://developer.apple.com/library/ios/#qa/qa1682/_index.html
For instant results, delete all mobile provisioning profiles from xcode and install the developer profile that you intend to use.
Almost 2hrs on this issue! And finally I solved it by replacing the
iPhone Developer
to
iPhone Developer: My Dev Account Name
for Debug's CODE_SIGN_IDENTITY:
Select Project Target
Build Settings
Search by "code sign"
Modify CODE_SIGN_IDENTITY section's Debug row with "iPhone Developer: My Dev Account Name", not just "iPhone Developer".
I've no idea why it works, but it does! At least for me!
Environment: Xcode 5.0 (5A1412).
Check ur code signing section.make sure that the code signing is iPhoneDeveloper code signe
Open Entitlements.plist and set the boolean value get-task-allow to YES - the debugger can attach now!
Go to Edit Schemes and under Run -> Info -> Build Configuration, change from Ad-Hoc to Debug. Click OK to save.
It might be that you have an expired development profile on your phone.
My development provisioning profile expired several days ago and I had to renew it. I installed the new profile on my phone and came up with the same error message when I tried to run my app. When I looked at the profile settings on my phone I noticed the expired profile and removed it. That cleared the error for me.
I received this error when I tried to launch app from Xcode as I figured I had selected distribution profile only. Build was successful so I created .ipa file. I used testflightapp.com to run the app. You can use iTunes as well.
As stated by Buffernet, you cannot use a distribution provisioning profile to debug. When I switched to a developer provisioning profile, I got the error "A Valid Provisioning Profile For This Executable Was Not Found".
A quick google for this lead me to the article listed below. From there, I realised that I hadn't got a valid development provisioning profile as my iPhone hadn't been added to the Provisioning Portal and all the other stuff involved.
Make sure you run an iPhone developer provisioning profile and your device has been added to the provisioning portal!
http://iosdevelopertips.com/xcode/a-valid-provisioning-profile-for-this-executable-was-not-found.html
Yes , Provisioning profiles which are for distribution purpose, i.e. Distrutions provisioning profiles do not support debugging and gives this error. Simply create and use debug provisioning profile (take care of this when creating provisioning profile from developer.apple.com account).
I just changed my bundleIdentifier name, that seemed to do the trick.
I've patched my project with JailCoder http://jailcoder.com/ and problem resolved.
Just download It and drag your xcode project to It.

Resources