Provisioning profile doesn't include the com.apple.security.application-groups entitlement - ios

I am getting error while configuring Xcode provisioning profiles.
Provisioning profile $ProfileName doesn't include the
com.apple.security.application-groups entitlement.
How to fix it. It seems my provisioning profile/certificate does not have some capabilities. How/where to add those capabilities?
update
In marked duplicated post, Sharing data in between apps in IOS the poster asked for generic way to share data between apps but in this post i am asking to resolve a specific build error i am getting while sharing data in between groups.

First you have to set the app group up in the Apple Developer Center for your App ID:
Afterwards in Xcode:
Select your target
Enable "App Groups" in the "Capabilities" tab
Tick the checkmark for the App Groups you want to use:

sometimes, X-code stuck. please use manually sign-in instead of auto sign-in.
it may help .

Related

ERROR ITMS-90046: "Invalid Code Signing Entitlements." using custom applinks

I've tried to upload application to apple store using Application Loader include Associated Domains in application entitlements but I have an error:
ERROR ITMS-90046: "Invalid Code Signing Entitlements. Your application bundle's signature contains code signing entitlements that are not supported on iOS. Specifically, value 'applinks:http://XXX.internal/' for key 'com.apple.developer.associated-domains' in 'Payload/MyApp.app/MyApp' is not supported."
I use distribution certificate
I have checked to ON in Associated Domains in App Ids in apple developer
I have created provisioning profile using app ids (with enabled Associated Domains) and distribution certificate
What can be the problem? I've tried recreate of all certificates, provisioning profiles etc.
I have solved this issue.
My problem was that I wrote wrong domain name. I had before:
applinks: http://something.com
and now I have:
applinks:something.com
And it's working great.
Go to xcode preferences.Accounts. Select your developer account and double click on the team name in the right. You will see all the provisioning profiles there, select anyone and show in finder. Now delete all these files and move to trash.
Now delete your account from the xocde. Quit xcode.
Now reopen xcode and go to preferences and add your developer account. Download all profiles from here.
Now re-try to build. Let me know if it works.
For anyone else stumbling across this, the problem is actually in your app ID so just deleting your provisioning profiles won't solve anything. Here's how to fix it:
1. Login into your apple developer account
2. Choose certificates and provisioning
3. Click on App ID
4. Click on the edit button for that App ID
5. Turn off Associated Domains
6. Save
This will invalidate your existing provisioning profiles so click over to Provisioning Profiles and you'll see the little icons showing the old ones are now invalid. Delete those. Generate new ones, download those and rebuild your app.
Problem solved.
I had the same problem when check
app id Push Notifications Disabled and project ON Notifications Im off Notifcation The problem was solved
Turning Associated Domains in capabilities off and then back on solved it for me.

iTunes Connect - entitlement error

Apps that use the entitlements [com.apple.developer.homekit] must have a privacy policy URL for [English, Turkish]. If your app doesn’t use these entitlements, remove them from your app and upload a new binary.
I didn't choose home kit entitlement in App ID. Where will I remove from this entitlement ?
First check that HomeKit is off in your app's capabilities pane in Xcode:
Then remove HomeKit.framework from link step in the Build Phases pane:
Then in the developer portal, in Certificates, Identifiers and Profiles, make sure HomeKit is disabled in your App's Identifier:
Clean your project and remove derived data.
I exactly have done all of this. But still it gives me same error. Im sure the app doesn't include anything about homekit. Maybe it can be different solution for this, can't be ?

Apple Store submit fails with Error ITMS-90046, but Associated Domains is not among entitlements

When I first built my app & Watchkit app, I had the "Associated Domains" capability enabled. I've disabled it in the "Capabilities" panel of both the watchkit extension and the companion app, and confirmed that the key is gone from each info.plist.
I have gone to Apples' "Certificates, Identifiers and Profiles" page, selected the App ID for each the Watchkit App, The Extension, and the App, unticked "Associated Domains", regenerated the provisioning profiles for each, downloaded and installed them.
I've done a Ctrl-Shift-Command-K complete clean, reboot, and rebuild. On sumbission to the appstore I get the error message below.
I have done a project search within xcode and cannot find a com.apple.developer.associated-domains key. I've searched the build directory, nada. I don't believe this key actually exists in my code, and yet iTunesConnect seems to think its there and set to '*'.
To fix this issue:
log into Apple Deveveloper Center
Go to Certificates, Identifiers & Profiles.
Go to Identifiers/App IDs.
Select your App ID and Edit
Uncheck Associated Domains
Save
You will have to regenerate any provisioning files associated with the App ID. For some reason the "Associated Domains" got checked for my app.
Deselecting it made the AppStore submission work.
I think this is a bug.
I managed a workaround by simply inserting a new Array item in the Entitlements.plist of both the companion app and the Watchkit extension: "com.developer.apple.associated-domains" and a valid domain for the webcredentials: string. While this will have no practical effect as neither my provisioning files nor the Capabilities tab of the app or extension are enabled for associated domains, it stopped whatever code scanner at itunesconnect was tripping over an invalid value of "*" for the non-existent key.
If you want to use associated-domains, make sure each entry in Entitlements.plist > com.developer.apple.associated-domains uses the following format:
<service>:<fully qualified domain>[:port number]
eg.
webcredentials:www.example.com
applinks:www.example.com
activitycontinuation:www.example.com
Keep in mind [:port number] is optional, but <service> and <fully qualified domain> are required!
From the App submission failed errors what I understand is possibly your provisioning profile still have the "associated-domains" enabled and its missing in your application "entitlements" file.
So obviously there will be two scenarios.
Scenario 1: Do you want to support "associated-domains". This should be enabled for features like "Universal Links".
Please refer the following link:
https://developer.apple.com/library/content/documentation/IDEs/Conceptual/AppDistributionGuide/AddingCapabilities/AddingCapabilities.html
In this case please don't manually edit your "entitlement" file. Instead follow the steps.
1. Select your project file in Xcode.
2. Select appropriate Target under "Targets"
3. Select "Capabilities" which is next to "General"
4. You can see an option for "Associated Domains" as given below.
5. Enable "Associated Domains". If you enable "Associated Domains" Xcode will ask you to login to the Developer account and it will be in sync with your AppId and Provisioning profile.
As mentioned in the above screenshot it will do two things while enabling "Associated Domains"
Add the Associated Domain entitlement to your entitlements file.
Add the associated Domain feature into your App ID.
If there is any issue in syncing your settings from Xcode and Developer account , please check the following checkbox is enabled.
Also make sure that your , In House and App Distributions provisioning profiles are properly updated and in sync.
Most the work will do by Xcode itself, we just needs to listen and understand.
Scenario 2: Your App don't need the "Associated-Domain" capability.
In this case , Please follow the Answer given by #Ciprian Rarau. Its well explained.
As other stated in ERROR ITMS-90164/90046: Invalid Code Signing Entitlements I was able to solve the issue by performing Clean build.
For the record, I was getting error code ITMS-90164.
Was getting: "The executable was signed with invalid entitlements"
messages
Searching with Google gave some useful hints, but the ^ message did
not stop
Went to: Xcode > Window > Devices
Then: At the lower left-hand corner of the Devices Window I selected
the "Show the device console" button
Starting from the button of the log I scanned the information and
found the problem and fixed it in a short amount of time
In my case it involved com.apple.developer.associated-domains
entitlements, and I needed to keep associated-domains
I will use the device console in the future whenever there are device error messages, what a time saver
Solved the problem in a short amount of time
BTW, THANK YOU all for your help

How to add iCloud entitlement to app ID?

How can I add iCloud entitlement to app ID? I wants to use just key-value storage in iCloud. I have enabled iCloud by editing my existing iOS app ID. Then, generated new provisioning profile, installed it in XCode. I added my app bundle ID in com.apple.developer.ubiquity-kvstore-identifier. XCode gives me warning that Add the iCloud entitlement to your app ID. I dont know where I have done wrong. Please help me out. Thanks.
As it says, login to Apple member center and configure app's identifier.
Select the iCloud container (if you can't select, create one)
PS: I can only post 2 images now, so I can't show you more details.
In order to void the error "Internal error ...." you have to:
Register any device on your Apple Developer under Certificates IDs and profiles
Connect your phone or your iPad and register it
Go back to your application
Click fix
Another solution that could help is updating provision profiles (cause after adding new capabilities, you have to do it)
To do that you have to go to Apple member centre -> Provision profiles (All). And here, if some profiles have a yellow exclamation mark, choose it, click "Edit", and then "Download". After downloading open it. That will help.

Invalid Code Signing Entitlements, error while submitting app to apple

I am developing an app with iCloud enabled. While uploading the app to apple I got following error:
Invalid Code Signing Entitlements. Your application bundle's
signature contains code signing entitlements that are not supported by iOS.
Specifically, key
`'com.apple.developer.icloud-container-identifiers' in Payload ------- not supported`
While surfing i also got some answer that disable iCloud,but I want to use iCloud feature for my app, so is there any other way to overcome this problem, please let me know.
Thanks in advance
It seems like your provisioning profile is not configured to allow iCloud entitlements. To do this, log into your dev account at http://developer.apple.com, go to the iOS Dev center, and Click the link on the right for "Certificates, Identifiers, & Profiles" under the iOS Developer Program on the right. Find your app id in the Identifiers section, and click the edit button. From there, make sure iCloud is enabled for both development and distribution.
Also, make sure your app id prefix is not using wildcards. You will not be able to use a wildcard prefix (com.example.*) when using any of the special entitlements, like iCloud, Push Notifications, etc. Once you are sure that is set up with iCloud enabled, you will need to regenerate your provisioning profile.
Click the Provisioning Profiles on the left, and find you app store provisioning profile. Click the Edit button on the profile, select the app ID that now has iCloud enabled, and click the "Generate" button to generate a new provisioning profile. Then download the provisioning profile and install it over top of the old profile. Then re-build and sign the app and try re-submitting.
Another solution relevant to people re-signing their app:
If you have iCloud features enabled the provisioning profile will contain keys like com.apple.developer.icloud-container-identifiers. If you don't filter these keys out before you pass them to codesign they will end up inside the binary, which causes this error.

Resources