No identities were Available - ios

I have created new provisioning profile, certificate, etc. But when i archive my application for publishing to iTunes store it gives me an error that No Identites were available. An administrator must request identities before they can download. When selecting the download identities from dev center it shows my developer account but then comes back to the same screen going in an endless circle. How do i resolve this issue.

Make sure that your bundle identifier in your target -> info matches the one on your provision profile in the dev center.

Take a look at the Code Signing Identity in the Code Signing section under the Build Settings for your project. Make sure the identity there for Release matches up to a valid iOS Distribution role (under Preferences-->Accounts-->Apple ID-->View Details). Also, while there, check that the project's Distribution Provisioning Profile is there.

Related

Xcode 8 shows error that provisioning profile doesn't include signing certificate

Xcode 8 shows error that provisioning profile doesn't include signing certificate.
This issue is with Xcode-8 only with Xcode 7, same provisioning profile showing related identified certificate.
There are many ways to fix this, like enabling automatic signing etc. But if you want to understand the reason for this error you need to look at the error message.
It says that the provisioning profile you have selected in the "General tab", does not contain the signing certificate you selected in the "Build settings" -> "Code Signing Identity".
Usually this happens if a distribution certificate has been selected for the debug identity under "Build settings" -> "Code Signing Identity".
If this happens under "Signing (Debug)" it might also be that the "Signing Identity" -> "iOS Development" is not included in the provisioning profile.
Check your keychain for identities that are missing a private key. I had multiple distribution certificates installed for the same team, one of which was missing the private key. Xcode was only checking the first matching identity in the keychain and automatically using this as opposed to the one that did include the private key.
Removing the matching identity that didn't have a private key made Xcode detect the correct identity again.
To fix this,
I just enable the "Automatic manage signing" at project settings general tab, Before enabling that i was afraid that it may have some side effects but once i enable that works for me.
For those who should keep using not auotamatic for some reason
Open keyChain Access to see whether there are two same Certifications ,If there's two or more,Just Delete to one and it will work :)
I experienced this issue after recently updating Xcode to version 9.3
The issue was in code signing (under debug) certificate was set to distribution certificate instead of development certificate so this prevented me from installing the app on my devices.
Here is what I did to solve this issue.
Project -> Targets -> Select your app -> Build Settings -> Code Signing Identity -> Debug -> Double tap "iPhone Distribution" and change it to "iPhone Developer".
I unchecked and then checked the "Automatically manage signing" option. That fixed it for me.
For what it's worth automatic signing failed every time until I just manually deleted local profiles in:
~/Library/MobileDevice/Provisioning Profiles
After that automatic signing worked perfectly and it got the right profiles from Apple's servers.
This was affecting only some builds, notably the ones for which I had manually created profiles for watch app.
If you use manual signing (which I would definitely encourage), this error may occur because Xcode thinks that it should sign a release build with a developer certificate, which is obviously not included in a release provisioning profile.
There is a build setting that defines which certificate should be used for which build configuration. To change it, go to build settings and search for Code Signing Identity. When expanded, there should be separate rows for each build configuration (usually Debug and Release) with in the second column its selected identity (usually iOS Developer or iOS Distribution). Make sure that it's set to the correct identity for each build configuration.
In some cases, the build configurations can also be expanded. Make sure that also its subitems are set to the correct identities.
Had the same error.
Profiles seems renewed, new certificates added, i even checked it when download. Also revoked former developer's certificates, excluded from provision profile.
But Xcode still asking me about previous certificates with error:
No certificate for team 'MY_TEAM' matching 'iPhone Developer: FORMER_DEVELOPER' found
so, what I did to fix it:
Go Build Settings -> Signing -> Code Signing Identity
Find all 'FORMER_DEVELOPER' certificates and choose needed.
Hope it will help somebody.
For those who still struggle with this problem in Xcode8. For me was a duplicate Certificate problem, this is how I solved it:
I read the answer of Nick and then I began my investigation. I checked all the keys and Certificates in my particular case (inside ~/Library/Keychains/System.keychain).
When I opened the file, I found that I had two iPhone Distribution Certificates (that was the certificate that Xcode was requesting me), one with the iOS Distribution private key that I have been using since the beginning, and another iPhone Distribution Certificate which its private Key had a name (iOS Distribution:NAME) that wasn´t familiar for me. I deleted this last certificate, started Xcode again and the problem was gone. xCode wasn´t able to resolve that conflict and that´s why it was giving signing certificate error all the time.
Check your keychains, maybe you have a duplicate certificate.
You may also solve code signing issues with great Fastlane toolkit. Authors put a lot of effort to effectively automate building, signing iOS apps (and more).
So in the mentioned suite, there is tool sigh which magically resolves any signing issues, hence the name :) Nice thing here is, that this tool encapsulates a knowledge about common signing issues and can detect and resolve most of them.
Fastlane is installed as Ruby gem:
gem install fastlane
And then simply invoked:
fastlane sigh --development
Answer two questions, and voila:
[11:56:55]: No existing profiles found, that match the certificates you have installed locally! Creating a new provisioning profile for you
[11:57:01]: Creating new provisioning profile for 'com.myapp' with name 'com.myapp Development'
[11:57:06]: Downloading provisioning profile...
[11:57:09]: Successfully downloaded provisioning profile...
[11:57:09]: Installing provisioning profile...
Finally, go to Build Settings -> Signing, and switch to newly created provisioning profile, whose name you just saw in the command output.
This example is for development code signing problem (running on the device). Check sigh documentation for all other options.
In my case, in keychain i had two certificates with same name, i removed one of the certificate which is duplicate then it solved the problem.
I had remaining private keys from certificates I had revoked, certificates were gone but not the private keys. Deleting them solved the problem.
To find them:
Open Keychain access
Click "Keys" under category on the side left menu
Look for iOS Developer: ..." keys that do not have a certificate tied to them
I deleted them and problem went away
The highlighted key in the picture is a sample private key without a certificate.
"Enable automatic signing" and then selecting a team from the drop-down menu helped me with this exact problem.
Because I haven't seen this specific answer:
My issue was I needed manual signing. So my mistake was that In Build Settings -> Code Signing -> Code Signing Identity
I had my debug (Automatic signing style, and Apple Development Certificate), Staging and Release (Manual and Apple Distribution (adHoc) variants set correctly.
What I DIDNT have set correctly (due to some flawed logic in my understanding) was the "ANY IOS SDK" value. Once I set it to the same manual Apple Distribution cert, the error went away.
Initially i had it set to an Automatic value "iOS Distribution" because I figured it would better handled automatically since I didnt know what it meant. still dont. oh well hope it helps
Delete the developer certificate that does not have a private key.
Delete the provisioning profile from your machine using go to folder (~/Library/MobileDevice/Provisioning Profiles)
Then first check then uncheck the Automatically manage signing option in the project settings with selecting team.
Sing in Apple developer account and edit the provisioning profile selecting all available developer certificates then download and add to XCODE.
Select the provisioning profile and code signing identity in project build settings
Xcode 11
This is the error I got
Provisioning profile "XXX" doesn't include signing certificate "Apple Development: XXX (XXX)".```
Now Xcode 11 automatically created a certificate "Apple Development: XXX" which is valid for all platforms
You just need to
Go to https://developer.apple.com
Go to your provisioning profile
Check if this certificate is selected
The issue seems to start happening in Xcode 11.
Go to Apple Developer
Find the right provision profile
Press Edit in the right upper corner
Choose the (Distribution) option in Certificates. (I think it's a new option/certificate type that apple introduced though I couldn't find any documentation)
Optional: Delete all you provision profiles in (~/Library/MobileDevice/Provisioning Profiles/)
go to Xcode ->Preferences->Accounts->Download Manual Profiles
I have the same problem.
I changed the mac. And when I downloaded the Xcode certificate, I received an error message: "The error is that the security profile does not include the certificate signature."
1) Go to https://developer.apple.com/account/ios/profile/limited/edit
Select the project => edit => Certificates => Select All => Create => Download
2) In Xcode: Project file => Signing (Debug) => Provisioning profile => Import profile => Select file with 1
For me, None of the above solutions worked. I was migrating from two older mac's to a new mac, trying to get release/debug profiles working on Xcode WITHOUT Xcode auto managing them.
The solution for me was that when I went and created the two new Certificates, i ALSO had to go into my provisioning profiles, and add (under both the distribution and dev) the new certificates to the provisioning profiles so recognized them. After doing this & downloading, xcode removed all errors and it is good to go.
Hope this helps someone!
I got one of these emails from Apple:
Dear John Doe,
The following certificate has either been revoked by a member of your
development team or has expired:
Certificate: iOS Development
Team Name: Honey Team, LLC
This does not affect apps that you've submitted to the App Store or
your ability to update your apps. If you're using provisioning
profiles that contain this certificate, they must be recreated before
they can be reused. For details, see the "App signing overview"
section of Xcode Help.
Best regards,
Apple Developer Program Support
I created a new certificate which revoked the previous certificate (locally and on any other developer's mac). For it to work I must download the new provision profiles.
The solution is to:
login into Apple developer account
remove/revoke the previous certificates created in my name.
add the new certificate to the provision profile. You can identify the newer one by their expiry date
download them again from Xcode. Xcode >> Account >> Download All Profiles
restart Xcode
I personally didn't have such access. This access was only available to our team's admin, hence I don't have screenshots nor certain if these steps are 100% correct.
I haven't seen this mentioned yet but if you are still having issues after recreating your provisioning profiles, deleting the existing ones you have in your Provision Profiles folder, checking for dupes in your Keychain, etc (all other answers ITT), open your Target > Build Settings > Code Signing and make sure everything looks consistent in there. For example, I had changed the Code Signing Identify for Debug to a Distribution identity, which obviously wouldn't work as the Development Provisioning Profile doesn't have the Distribution certificate and was causing the error in the first place.
If your trying to upload your app to iTunes Connect (your Provisioning Profiles are set to Distribution), Go to Project Settings -> Build Settings -> Code Signing. Make sure to set all of Debug and Release Options to your Distribution Provisioning Provisioning Profile.
This might help you
iOS Distribution profile
Scenario:
Another developer gave me a certificate.
I installed this simply
Error :
Xcode 8 shows error that provisioning profile doesn't include signing certificate
Which was not exactly correct error.
The error was the private key missing
Preference -> Accounts -> Double click team
Call the developer to send the private key.
and installed it into your locally
SECOND SOLUTION
Create a fresh certificate.
Edit your existing provisioning profile
Include fresh certificate
Save and download
It means you need to do either 1 of the below:
You should have created a certificate at the Developer Center and then included that Certificate within the Provisioning Profile which you will Import into XCode.
Else, If you are using a certificate created by someone else, then get them to share/export their certificate & private key (.p12 file) to you & you need to include this into your keychain. Refer here
A solution to #2 when you are not able to get the certificate & .p12 file from the creator would be to just check the 'Automatically manage signing' option.
Here are the steps solved for me (For those who face the same problem in XCode 9.2):
Just manually deleted local profiles in ~/Library/MobileDevice/Provisioning Profiles.
Deleted and created all the certificates and provisioning profile from developers account.
Removed developers account from Xcode and re-added it.
Solved my problem! :-)
This happens because the provisioning profile can't find the file for the certificate it is linked to.
To fix:
Check which certificate is linked to your provisioning profile by
clicking edit on your provisioning profile in the Certificates, Identifiers & Profiles section of the Apple Developer dashboard
Download the certificate from the dashboard
Double click the file to install it in your keychain
Drag the file into Xcode to be extra sure it is linked
The error should be gone now.
Clicking but then cancelling "Enable Automatic Signing" worked for me, although the actual change it made was:
ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES;
or in Xcode it's called Always Embed Swift Standard Libraries
I had the same issue and reason was penny. Wrong profile and certificate was selected in build settings. I only had did this before few days. So, you do not need to enable "automatic" inside xcode. Check profiles inside your build settings before doing it.
Try downloading the certificates/profiles directly from the member centre rather than doing it from Xcode.
It worked for me when I manually downloaded them from the member centre.

How to become familiar with code signing issues?

Every time when i deal with code signing and provisioning profiles strange things happens. Most times i get the error "no code signing identity found" and if not then something like "no matching provisioning profiles found" and "no provisioning profiles with a valid signing identity".
Although i am quiet familiar with the theory and the things behind code signing and provisioning, there are still lots of pitfalls I everytime ran into and i don't know how to deal with. Sometimes it fails when setting up a new App, sometimes not.
There are 5*2 different ways to select code signing identity. What is the difference between them? And if i select one for debug and one for release, what is the reason for the "Any iOS SDK"?
Also, there are two places giving this dialog: Project-Settings -> Buildsettings is the first place, and also for the Target under Build Settings. Both are not in sync, so if i change the code signing at the first place, i have to change it twice in the second place. Is there a way to keep them in sync?
Which code signing identity would fit best into the various lines (debug, debug -> any ios sdk, release, release -> any ios sdk), since i can choose between developer identities and distribution identities (i could imagine, that the distribution one is for release and the developer one is for debug, but because of everything fails, i don't know.
What I did:
There a valid certificates in the Member Center deposited for each developer of our team and one for ad hoc distribution for the Team.
We also created AppIDs which reflects exactly the same setting in the Project Settings. In between we avoid using Variables and use the exactly appid also in project-settings to reduce risks on this side and to simplify things.
When switching the provisioning profile from "Automatic" to a specific Profile for this App, the code signing identities change to different values, which are also not in sync between the project settings and target build settings:
On the Target->Build Settings we get this result:
On the Project -> Build Settings we get a different result:
Which one would be more accurate?
After "Product" -> "Archive" -> "Validate" we get the following error:
It doesnt matter here if we select different Code signing identities or not. Actually, just for playing 'trail-and-error', we tried out nearly every multiple combinations of code signing identities to learn what XCode would do then.
After this error message from Archive->Validate the previous selected provisioning profile is replaced with another one named by a randomly generated string:
Who can tell me what happens here and how to solve these issues?
I've read a lot of documents regarding this topic. But most tutorials around this topic are outdated since several changes happened between XCode 4 and XCode 6. Even the apple documents offer mostly screenshots based on outdated XCode versions and also outdated versions of Member Developer Center.
Update
As Ian McDonald pointed out correctly, the last question (covered by the last 2 screenshots) is answered. After recreating the Provisioning Profile it won't be replaced by randomly generated strings, but the IPA-creation is still not working with "no code signing identities found".
What it looks like now:
you have a long question , but If you face problem with archive or publish your app there are some steps you should follow
First code signing
If you build your app with Debug , then debug must sign with iPhone developer --> general if you use many or specific one "depend of certificate you have in your key-chain "
but If you build your app with release then you should you certification iPhone distribution ---> general or specific one
Second Provisioning Profile
If you build with Debug then the provision profile Debug should match match your bundle detail and be development
release be distribution one that you create on developer apple site
I hope this help you have a look at this also please
From what I'm reading you have changed your provisioning profile in your target from "xxx.xxx" to "xxx.xxxTests" which is in fact a different bundle identifier making the error valid. You really have two courses of action:
Change your bundle identifier back to just "xxx.xxx". This is the appropriate path of least resistance.
Create a new bundle identifier in the portal as "xxx.xxxTests" as well as a new provisioning profile for "xxx.xxxTests" tied to the same certificate. With XCode closed drag the new provisioning profile onto your XCode app icon then open your project.
You shouldn't have to change your bundle identifier to conduct testing. When you go to deploy you will only have to change which provisioning profile your target is compiling with (development vs distribution).
EDIT:
I have some more tips on provisioning profiles here: How to become familiar with code signing issues?
The quick and dirty side of provisioning works like this:
When you are added to the Apple Provisioning Portal your cert is the keys to the castle. Any code you compile has to be associated with your cert or you won't be able to properly compile/export your code.
Your bundle identifier is essentially the way iOS identifies your application. Conceptually speaking if you want to install your app multiple times on the same device create multiple bundle identifiers.
Your provisioning profile ties all of the pieces together. The prov profile tells XCode that you plan on using your cert to compile your app identified by your bundle identifier. If it's a development build it will only the devices specifically assigned to the prov profile in the portal will be able to install your app.
Within XCode you need to make sure your target bundle identifier matches what bundle identifier is in the provisioning profile. Likewise make sure your code signing identity matches the cert you setup in the portal and tied to the provisioning profile. Lastly select the appropriate provisioning profile from the drop down list below the code signing identity.

After Provisioning profiles are made, code signing not found

Here are the steps I have taken to get where I am now:
Created two certificates in the developer center for APNs development and production (both tied to the App ID I am using with push notifications enabled)
Downloaded and installed the certificates into Keychain Access.
Created provisioning profiles in developer center for production and development (both pointing to the appropriate App ID)
In XCode, under Preferences > Accounts > View Details - I refresh and get the provisioning profiles. It lists two signing identities (development and distribution but not sure if these are correct).
Under Build Settings I have the appropriate provisioning profile selected but...
There are NO code signing identities available, except "iPhone Developer"
So my question is, how can I get the right code signing identities listed here so I may publish my app? The app currently working fine in the app store, but I want to switch from a Phonegap build (what I currently have published) to an Xcode build.
Any help is GREATLY APPRECIATED! Thanks!
It sounds like you are doing everything correct until you hit step 5. Since provisioning profile are under signing identities, my guess is that since you choose the provisioning profile first it's messing something up.
Try resetting your Provisioning Profile to "None". Then select your Code Signing Identity.
Under Target -> General Are you selecting the correct "Team"? Without the correct team, your code signing will not be found.
Please make sure that the Code Signing Identifier under the Build settings for both the Project and Target MUST be the same.
If still can not work, then I think you can clean up the project, close down your XCode project and then reopen. Sometimes it solves the problem this way.

Provisioning Profile ERROR while running in iPad

I am using Xcode 4.6.3.
I am getting this error messages while running the application in iPad,But first it was running correctly. Now we have renewed our license so i have changed certificate and
profile.still the same error appears
Please help me...
you need to follow this step:-
You Provisioning profile Generate with developer certificate from iTunes dev center.
remove old install App from device may be you Ipad contain old profile reference.
After connect your device to Xcode-Organizer->device->yuorIpad->Provisioning--check there old Provisioning profile is ther or not. if there then remove it.
In your target And Project check-> your Identifier is currect or not for example com.yourprofile.yourId
In Build setting you->code signing ->selection profile is correct identifier or not
Now just clean your Project. Build and run.
EDIT
Do not forget to Adding New testing Device ID into your new Generate Provisioning profile. in iTunes Dev there is Column to adding Device and also asking Device while you Generate Provisioning profile. May be you forget this step.
be sure that you are generating provisioning profile after adding device, or when you're just renewing profile.
And your provisioning profile must be linked with certificate, that you have in keychain.
(certificate+key)
All devices must be readded on demand, after renewing dev program (!)
In general, It's pretty sraightforward (just try it from the clean sheet, delete all the old stuff)
1) cert signing request
2) appid (if new app, if old just skip, optional - apns stuff)
3) certificates dev/distr (import them)
4) devices
5) provisioning profiles (import them)
in xcode choose in all positions needed profile, sometimes choosing parent option do not change profile for all fields of "Signing Identity" in xcode.
Deleting of old provisioning profiles is optional, it's not a problem when you have many of them
it's only problem when signing identities are more then one, ie: old expired and new one.
(In xcode 5 it will be easier to choose identity)
EDIT: it really seems like in build settings in code signing identity select options (some option) an old profile is chosen, and xcode gives this error.

Code Signing Error

The company I am working for has a base app that they reskin and sell to different businesses. I have redesigned the app and am trying to upload it to their account but am getting:
[BEROR]Code Sign error: The identity 'iPhone Distribution' doesn't match any
valid certificate/private key pair in the default keychain
How do I add their developer account into my Xcode and acquire a certificate for distribution?
Thank you
Basically, you need to have maximum privileges in the Provisioning Portal to do the following, so if you don't, get it, and then do this:
Login and download a developer certificate. If you need to create one, select How To from the menu in the Provisioning Portal under certificates.
Download a distribution certificate. Again, if you need one, select How To.
Open both certificates and make sure they open in your Keychain Access
Select provisioning and download both a developer and distribution .mobileprovision provisioning profile. Create one if necessary using How To
Make sure you have XCode open and open both .mobileprovisioning profiles. Make sure that they open in the Organizer and show in the status that they are properly linked with a certificate that is valid in the Keychain Access. If they aren't, a flag will pop up, saying something like "There is no valid certificate associated with this profile" in bright red.
Check your code signing in both the Target and Project areas of your build. Make absolutely sure that both are trying to sign using your distribution profile.
Make sure that you are building the distribution scheme of your app (You may have to create this).
Finally set the build device to iOS Device, set the scheme to Distribution, and select Archive. It is imperative that when the program asks you to allow the code signing to use your private key, that you select "Allow" and not "Always Allow," as this is very buggy and often results in code signing errors.
If you need any more help, comment.
Hope this helps!

Resources