Cannot find App Attest Capability in XCode - ios

According to the App Check Firebase Documentation, it is said to add the App Attest capability to your app.
However, I am not able to find any such capability in XCode. Any insights on this?
Note: We have enabled capability in the provision profiles
Documentation Link: https://firebase.google.com/docs/app-check/ios/app-attest-provider#install-sdk
Screenshot of Documentation

A Firebase developer here.
Currently you need to set App Attest environment to production in your app entitlements file. You can achieve it by adding the key directly to the file or you can follow the steps below (relevant for Xcode 12.5):
Open Signing & Capabilities tab in the settings of your app target
Press + Capability button
Select App Attest(see screenshot)
Open the corresponding entitlements file usually named like YourAppTargetName.entitlements
Set value production for App Attest Environment key(see screenshot)
Sorry if the docs don't contain enough details, we will try to make them more clear.

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.

App groups are not working after deployment in release mode

I am working on an ionic iOS application. I have a shared extension in the application, to share information between ionic application and my iOS shared extension I have been using app groups to retrieve the values.
The application works expected when the deployment happens in debug mode.
In release mode user defaults does not work from share extension.
I have the distribution certificate with enabled app groups. All the other configuration looks fine.
There is another similar question asked although I did not see any answers for the same.
iOS Share Extension not working after deploy
When ionic app is created the entitlement needs to be added separately, adding entitlement in both main and shared extension app will have to edited in the build settings as well. Under code signing entitlements release need to add the entitlement file location.
The issue was by default the entitlement file is not provided by ionic when you use the shared extension or app group information sharing.
In my case, app groups were only configured for the debug mode.
By following these steps for both the runner and the share extension, I was able to resolve this issue -
Select Runner / Share Extension under "Targets"
Select "Signing and capabilities" tab
Press "+ Capability" button
Select "App Groups"
Set the correct app group for both release and debug modes

Unable to set Signing certificate in XCode. Executable contains an invalid signature

I want to run my cordova iOS Application on my iOS Device for testing.
Following are my build settings:
Clicking Enable Development Signing sets the Team to None.
My build is successful. On installing, XCode shows the following error:
Does it require a developer account to run the Cordova iOS build on a device for testing? The Cordova Android version is already on Play Store.
How to set a Signing Certificate without a developer account? How to fix the invalid signature error. I haven't set any signature yet.
I am completely new to iOS.
Yes, you must have a developer account to get a signing certificate. The signing certificate pairs with your provisioning profile, which also requires a developer account to create. You need both to run on a physical device. Your device must also be registered with your account and included in your provisioning profile device list to be allowed to run the app, outside of the App Store environment.
Xcode handles much of this for you automatically, if you have a developer account set up under Xcode Preferences > Accounts > Apple IDs. On the right-hand side of that screen you have a list of "Teams" along with buttons that say "Download Manual Profiles" and "Manage Certificates..." Is anything listed in there?
Your screenshot shows a Team with your name, which should mean that you have a developer account already?
You also have a button in your screenshot that says "Enable Development Signing." Have you tried running that? Does it not take care of things automatically for you? "Automatically manage signing" enabled should be helping you get through these issues with simple clicks of those buttons.
Otherwise, you will need to go to the Developer portal and register a signing certificate manually. That's a process that many have written blogs and manuals about already. I don't think it is necessary to re-write what has been said by many others already. Here's a YouTube video that does a nice job of explaining things: https://youtu.be/OwXIJchrDdA

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

Xcode-5 Validation error. Invalid code Signing Entitlements

I am trying to upload the application on AppStore but due to invalid code signing entitlements I cant upload the application and after alot of search and solutions I am posting this issue here. For more details I have attached a screen shot herewith in which issue is precisely described.
It looks like you have the web browser to app handoff entitlement in your app, but it needs to be an explicit domain, not *. https://developer.apple.com/library/prerelease/iOS/documentation/UserExperience/Conceptual/Handoff/AdoptingHandoff/AdoptingHandoff.html#//apple_ref/doc/uid/TP40014338-CH2-SW10
Open your Capabilities tab for your project, in Xcode and look for this: com.apple.developer.associated-domains
If you don't want to use Handoff, you can likely disable that or removed it.
Edit: I've added two screenshots. One is the Capabilities tab of your target, make sure Associated Domains is turned off. The second is the Entitlements file, find your MyProject.Entitlements file in the project and delete the key for associated-domains.
Edit 2: Added a screenshot of the developer account App ID.

Resources