iTunes Connect - entitlement error - ios

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 ?

Related

WatchOS and location entitlement

I've been working on adding a watchapp to a fitness tracker I already have in the app store. I've been able to load it onto my physical phone and watch without trouble in the past.
I've recently added Location tracking to the watch app, so that I can track the path the user has run/biked and show it to them on the phone when they review the workout. Since doing that, I'v been getting errors from Xcode when I try to load the app to my phone; I think these are expected errors, but I'm having trouble understanding from the docs/interface of Xcode and developer.apple.com where to make the fix.
I've added the entitlement in the watch app entitlements file:
As the error says, I've switched to manual signing and generated a new provisioning profile, but I get the same error. I don't see a place to add a location capability in the provisioning profile in developer.apple.com:
It seems like the only way for the provisioning profile to get the entitlement is from Xcode, since there's not a place to add it in developer.apple.com? That seems wrong, and isn't working in any case. I'm not finding help for my case in the Xcode docs (or I'm looking in the wrong place). Any help would be greatly appreciated.
I am using location services on iOS and watchOS, but I have nothing related to it in both entitlement files. The docs say:
Set entitlement values in order to enable iCloud, push notifications,
Apple Pay, and App Sandbox.
They don’t mention location services.
So it might be enough to delete the Location entitlement, and enable automatic signing again.
Of course, you had to set in your iOS info.plist, as required, NSLocationAlwaysAndWhenInUseUsageDescription, NSLocationAlwaysUsageDescription and NSLocationWhenInUseUsageDescription, and in your watch extension info.plist NSLocationWhenInUseUsageDescription.
Are you using latest Xcode? Did you set the entitlement in the target menus? They all have toggles now, from what I remember. Once you do that, normally Xcode can resolve signing issues for you. If you look at the signing section in Xcode, does it indicate a signing problem there? (And have you restarted Xcode at least once while trying to resolve the signing problem?)
Note that the location entitlement should be on your WatchKit Extension, not on the Watchkit App.
Have a look at the Capabilities tab (it is the one for control of Entitlements, so you do not have to edit the plist directly.)
Have you tried creating a new project as a test to see if that works? Your screenshot does not match target naming of what I see in Xcode for a WatchKit App. In Xcode 10.1, the WatchKit App plist editor will show 'app name' WatchKit App and the extension plist editor shows 'appname' WatchKit Extension. I see your screenshot showing 'blank' Watchapp Extension. Possibly you edited the project name and that is not an issue? Another thing to verify is that the plist is not corrupt.

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

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 .

Can't submit App with Siri-Capability enabled (ITMS-90163)

I am currently trying to submit my app to the app store and the latest update will add siri capabilities to the app. So in the capabilities tab I enabled Siri, but now my app fails iTunes verification (ITMS-90163) and I have no clue what's wrong here.
The string com.apple.developer.siri is part of my entitlements file, but I guess that needs to be there, right?
I already tried the classic -> clean build... didn't help
There is no provisioning profile to choose for the siri-extension, so don't know where to change anything...
Go to https://developer.apple.com. Select identifier -> tap on your app identifier.
Enable Sirikit from here.
regenerate your provision profile and install it.
delete DerivedData.
clean your project.
compile again.

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

HealthKit iTunes Connect entitlement error

I had enabled health kit capability in Xcode and HealthKit service in Developer center at some point for my app. But then I disabled it right away as I decided to not include it. My app doesn't have any HealthKit related stuff in it, I have disabled the capability and also disabled it in developer center. However, when I try to submit my app in iTunes connect, it gives me error:
Apps that use the entitlements [com.apple.developer.healthkit] must have a privacy policy URL for [English]. If your app doesn’t use these entitlements, remove them from your app and upload a new binary.
When validating the app in Xcode, it still shows me health kit entitlement: com.apple.developer.healthkit
Any idea how I can completely get rid of this entitlement from my app? I have been struggling for over a day now :(
NOTE: this is a new app, it's not available in the app store yet.
I faced exactly the same problem, and I finally fixed it. Be sure that you remove any reference to HealthKit not only in your app but also in your developer profile for this app.
Go To the developer portal
Click the App IDs link on the Certificates, Identifiers & Profiles developer page
Select the App ID you are using in your app
Click the Edit button
If HealthKit is enabled, disable it and click the Done button
Regenerate all provisioning profiles using that App ID
Open Xcode
Turn Healtkit to off in your project (it looks like you already did it, I write it for the other)
Check you have no trace of Healtkit in your entitlement file, plist file and HealthKit is not in your Frameworks.
select Xcode > Preferences > Accounts. Select your team and click View Details
Click the refresh button in the bottom left corner to refresh your provisioning profiles
Restart Xcode and rebuild your project
Submit your app. During the submit process, you should not see the Healtkit Entitlement anymore.
NB : If you still face the problem, I suggest you to delete all your provisioning profile at step 5 and try again. Don't forgot to restart XCode.
There is option of Privacy Policy URL inside the APP, just fill that URL with the URL of your company and save and submit the application.

Resources