XCode 12.5 Missing entitlement com.apple.developer.associated-appclip-app-identifiers - ios

After I updated Xcode version to 12.5 I have problem with App Clip.
During App Store Connect uploading I receive warning:
TMS-90876: Missing entitlement - This app contains an app clip. The entitlement 'com.apple.developer.associated-appclip-app-identifiers' should be present and include the value of the app clip's application identifier.
there is no information how to add this entitlement
I tried to add 'com.apple.developer.associated-appclip-app-identifiers' key to entitlements file
<key>com.apple.developer.associated-appclip-app-identifiers</key>
<array>
<string>{my_clip_bundle_id}</string>
</array>
but the error appears
Provisioning profile "iOS Team Provisioning Profile: {my_bundle_id}" doesn't match the entitlements file's value for the com.apple.developer.associated-appclip-app-identifiers entitlement.

This seems to be a bug on Apple's side.
All you need to do is regenerate the provisioning profiles.
If you are using Automatically Manage Signing, there is a way to trick XCode to create a new profile for you. Go to Project Target > Signing & Capabilities page and add a new Capability (for example Sign in with Apple). This will force the regeneration of the provisioning profile. After that, you can remove the newly added Capability and upload a new build without any warnings.

I was facing same issue. I was missing $(AppIdentifierPrefix).
adding below to .entitlement file of main app fixed for me.
<key>com.apple.developer.associated-appclip-app-identifiers</key>
<array>
<string>$(AppIdentifierPrefix)com.app.appclipbundleid</string>
</array>

Related

Missing NFC tag protocol in profiles issue in iOS 13 and Xcode 11

Provisioning profiles showing error after adding NFC tag-specific data protocol to entitlements which is requirement of iOS 13 and Xcode 11 for using NFC in app.
I have re-checked the profiles NFC is enabled for the bundle-id and provisioning profiles are also valid and includes NFC.
I need to upload a production build but because of this error I am not able to. Is this iOS 13 or Xcode 11 bug? What should I do for fixing this?
After a number of hit and trials, I was able to solve this issue.
Here are steps I followed:
1) In developer site, Open your app identifier, click edit, disable NFC and then re enable it.
2) Re-download the provisioning profiles and install them.
Reason behind it could be when we re-download the profiles it contained information about new NFC tag item which solves the problem.
Preeti. I have the same issue here. I started with an app that uses NFC and is built with Xcode 10.2
It is my aim to update this app to build using Xcode 11.1 However when I do so I get an error saying that have missing entitlements, I can solve this error by adding TAG to my entitlements file like this:
<plist version="1.0">
<dict>
<key>com.apple.developer.nfc.readersession.formats</key>
<array>
<string>NDEF</string>
<string>TAG</string>
</array>
</dict>
</plist>
However once you do this this is where I encounter the issue you describe, my build now complains that my provisioning profile "doesn't match the entitlements file value for the com.apple.developer.nfc.readersession.formats entitlement." Is this the same issue you are having?
This despite my profiles having previously contained the NFC tagging entitlement, and having worked fine on Xcode 10.2 Have these entitlements changed for Xcode 11 and how do we solve this and maintain backward compatibility?
Using >iOS13.0: This link gave the solution (i.e eliminate the NDEF-entry in your entitlement)

Xcode 8.1 "Provisioning profile doesn't include the aps-environment entitlement"

Is anyone experiencing this problem?
After persistence problemas and information retrieval on the KeyChain I had enable
the KeyChain Sharing feature in Capabilities.
This was to create a file called .entitlements
So, when I gonna run the Archive this error occurs:
Check Dependencies:
Provisioning profile doesn't include the aps-environment entitlement.
Code signing is required for product type 'Application' in SDK 'iOS 10.1'
I'm using OS El Capitan 10.11.6, Xcode 8.1
If anyone can help.
Pleaseeee....
Check the Capabilities tab on your target and make sure the Add the Push Notifications entitlement to your entitlements file shows a check mark (under Push Notifications). If it shows an error, fix and you should be good to go.
For my case, Xcode 9
Case 1:
I used fastlane match before I added push notification capability and entitlement file.
Solution 1:
Run fastlane match again. It will detect that the provisioning profile is no longer valid since you added capabilities and will regenerate again, and push to your repo.
Case 2:
I used fastlane match before I added push notification capability and entitlement file.
I regenerated the invalid provisioning profile in the developer.apple.com account manually. So when I ran match, I got error
Provisioning profile '4d89b10f-568e-400d-a4e9-c96e0a51fd46' is not
available on the Developer Portal for the user a#xyz.com Make sure to
use the same user and team every time you run 'match' for this Git
repository. This might be caused by deleting the provisioning profile
on the Dev Portal
this may also happen when you press Fix Issue from Xcode
Solution 2:
Step1: delete the invalid provisioning profile from your certificates repo
Step2: run
fastlane match
It can happen that you have two entries for the "Apple Push Notifications Service" in your Entitlements file. This seems to be a bug in XCode (even in v8.2), which it cannot resolve by itself.
Open your Entitlements file in the text editor of your choice.
I had the following duplicate entries in my Entitlements file:
<key>aps-environment</key>
<string>development</string>
<key>com.apple.developer.aps-environment</key>
<string>development</string>
Try deleting one of the two key-value pairs. For me, deleting the first entry aps-environment solved the issue.
When you add push notifications to your app.
If you already have a provisioning profile.
It will become invalid.
You have to go to developer.apple.com
Edit your provisioning profile.
Then download the newly created one and double click on the same.
XCode will automatically replace the last one which became invalid.
Also verify that the apple id that you created on the Developer portal (developer.apple.com) has Push Notifications enabled. I faced it when I created the provisioning profile before enabling push notification on the app id so I had to edit the app id.
Target -> Capabilities
Make sure the Add the Push Notifications entitlement to your entitlements file shows a check mark under Push Notifications.
If it shows an error, than fix it.
I just Quit xcode and open it again resolved my issue. xcode (Version 11.7 (11E801a))
Make sure your project Bundle Identifier matches the App ID certificate at Developer portal.
i added this to my entitlements.plist and it's done.
<key>aps-environment</key>
<string>production</string>
I use "ionic package" and this work for me:
Go to https://developer.apple.com/account/ios/identifier/bundle
Edit "iOS App IDs" checking "Push Notifications"
Go to https://developer.apple.com/account/ios/profile
Regenerate and download app "iOS Provisioning Profiles"
Resend ".mobileprovision" file to Certificates in ionic apps panel
Work again "ionic package..." command

itunes connect - not contain the correct beta entitlement

I read that:
App "does not contain the correct beta entitlement"
I recreate production provisioning profile
I checking info.plist
Still the same bug. Last answer from topic above is recreate xcode entitlement "So the solution is to provide the entitlement in your plist 1) please turn on in-app purchase & game Center capabilities then turn it of again , this will add the missing entitlement AS Follow "
can you answer what .plist is generate (not info.plist?) and what data is changed after it (what section). Because I manualy edit info.plist (Marmalade SDK application), I can't edit entitlements from XCode.
The new itunes connect is buggy. Try:
Regenerate you iOS Provisioning Profiles (Distribution), then rebuild your binary with the new provisioning profile file and resubmit.
Actually you can still choose the uploaded build and submit for review. The status will be changed to "waiting for review".

App "does not contain the correct beta entitlement"

I submitted an application for review and I notice that the build that I submitted has an issue associated with it saying that Build 168 does not contain the correct beta entitlement. I wasn't able to find information on this error anywhere. What does it mean and will it inhibit the review process? My app was submitted today with Xcode 5.1.1 for iOS 7 (not the Xcode GM). Perhaps this relates to Testflight?
Please regenerate your provisioning profile.
It will Fix this problem
it's because the missing entitlement is now there beta-reports-active = 1
After creating the new provisioning profile, make sure the entitlement is there.
Here is how it should look like when you click in Organizer "Export.." -> "Save for iOS App Store Deployment":
Apple gave us a little surprise yesterday without telling us. There is a new entitlement that is added when you regenerate your distribution certificate. When you regenerate, as others said, it should fix your problem. It's not due to magic though, it's because the missing entitlement is now there beta-reports-active = 1
Once you download your new provisioning profile, make sure the entitlement is there, rebuild your IPA and this warning should finally go away. If you manage your own Entitlements.plist be sure to include this new key.
<?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>aps-environment</key>
<string>production</string>
<key>get-task-allow</key>
<false/>
<key>beta-reports-active</key>
<true/>
<key>application-identifer</key>
<string>bkahblahblah</string>
</dict>
</plist>
Yes, you need to recreate provisioning profile and one more important thing is that you need to provision your app with App Store distribution provisioning profile.
Here is how it should look like when you click in Organizer "Export..." -> "Save for iOS App Store Deployment":
You can also convert .mobileprovision file to .xml with that command to see if there really is a beta-reports-active key in your entitlements.
security cms -D -i YourProfile.mobileprovision > YourProfile.xml
You need to recreate provisioning profile (as everyone suggested), however you also need to distribute the IPA with an "App Store" distribution profile. If you're used to the old TestFlight distribution methods, you're probably signing the package with an "Ad Hoc" profile instead.
There are two step here:
Regenerate your provisioning profiles. Especially the AppStore provisioning profile to make sure the beta entitlement is there.
Archive and export your build by selecting the option "Save for iOS App Store Deployment"
Some of the mistakes comes from exporting the archive using the AdHoc deployment.
I bet Apple might remove AdHoc deployment in the future since TestFlight Beta Testing using AppStore builds serves the purpose.
Hope this helps.
I just tried submitting a new build of my app using Xcode 6. It complains about the invalid provisioning profiles that I have for the built app. So I regenerated the provisioning profiles at Apple Developer website and import them in Xcode 6. Uploaded the new built binary using the new provisioning profiles and submitted for review. The new provisioning profiles includes beta entitlements that I think iTunes Connect is complaining about. Hopefully it will not complain about the beta entitlements later.
For all it's worth I was using the Application Loader to upload the app and I never managed to get it to work (Application loader version 3.0 (620)). Once I tried using xCode via the Archive method things worked great. You can also tell if the Beta entitlement is present before submission.
Regenerate all your provisioning profiles, fixes the problem 100%
I was also facing same issue but suddenly the message in the itunesconnect got changed to
"To use TestFlight Beta Testing, this build must contain the correct beta entitlement. For more information, see the(Link)" in the prerelease section.
With TestFlight Beta Testing, you can distribute your prerelease
builds to testers to collect feedback and prepare your app for release
in the App Store. TestFlight Beta Testing is optional; you can submit
your app for review without using it.
Ref: here
Actually you can still choose the uploaded "error" build and submit for review. The status will be changed to "waiting for review".
I have also faced the same issue and resolved it by below mentioned steps
1.Create the Appstore Provisioning Profile and use that profile for Generating the ipa so that beta entitlement for the ipa will be enabled.
For the rest of the profiles the beta entitlement will be false
I use Jenkins to make both Ad Hoc and App Store builds. In this case simply regenerating the distribution provisioning profile didn't help, because the app still missed the "beta-reports-active" entitlement.
I tried adding that entry to the custom entitlements file, used for building the application. This fixed the problem for submitting the app in iTunes Connect, but made the Ad Hoc builds invalid - they failed to install on my devices.
After all I ended up with two custom entitlements files, one with "beta-reports-active" entry and one without it. Jenkins builds the app without beta reports entry and signs it with the Ad Hoc profile to produce an ipa file for in-house testing. Then it resigns the app with the other entitlements file for App Store distribution.
I got same issue. After regenerating provisioning profiles I again got same issue. Then I uploaded binary via Xcode and it solved the issue.
It seems like issue is with Application Loader. Use Xcode to upload the binary.
In XCode, select the Target and go to the Capabilities tab. Look for any "Fix Issue" links. If you can't find any, try toggling a capability (say Wallet) on and off again to regenerate your entitlements file.

Setting an Entitlements file - The executable was signed with invalid entitlements

As soon as I check "Use Entitlements File" in Xcode, I get the following error when I try to run my app on my phone:
The executable was signed with invalid entitlements.
The entitlements specified in your application’s Code Signing Entitlements
file do not match those specified in your provisioning profile.
I'm trying to get iCloud working, and it seems like I'm failing on step 1. I can run in the emulator, but not in the device I provisioned automatically through the organizer.
What am I doing incorrectly here?
First of all, you need to have specific provisioning for your App's ID, matching its bundle ID. Even if it's only for development, generic Team Provisioning cannot work to test iCloud.
If the App ID had been issued without iCloud enabled, and updated afterward, related Provisioning must be updated also.
Often, provisioning updating from Xcode's organizer fails to bring the right one. In this case, I suggest you to try to download updated provisioning directly from iOS Developer Website.
In my case, I have added inter-app capability in my iOS project and Xcode automatically suggested to add this permission in the app id (bundle id) in the provisioning portal and I did so. After this
I thought it was fixed since Xcode was showing tick marks for all under inter-app audio sections as follows
Add the "Inter-App-Audio" entitlement to your APP ID
Add the "Inter-App-Audio" entitlement to your entitlements file
Link AudioToolbox.framework.
Actually it was not fixed and I had to generate another distribution certificate with inter-app enabled and only when I signed with that distribution certificate I was able to install the app.
You Need to have Developer Certificate And Private Key in your keychain And Provision profile that have created must match with this Certificate.

Resources