Search code examples
iosxcodekeykeychainsigning

Xcode Code Sign error because of no Keys in Keychain


You might think, not again such a question where are already thousands of topics about. However, I've not been capable of finding the answer I needed to fix this problem.

None of these topics go as deep as the Keychain.

When I'm trying to deploy my app to an iPhone, I'm receiving the following message:

Code Sign error: The identity 'iPhone Developer: [Name] ([ID])' doesn't match any valid, non-expired certificate/private key pair in your keychains.

Now, as said, I have been looking for multiple guides or fixes, however, none of them seemed to fix this issue.

Things I've tried:

  • Use Apple's walkthrough for app deployment for countless of times
  • Searched the internet for guides for app deployment
  • Changed the content of the 'pbxproj' file inside the 'xcodeproj' package.
  • Retrieve all available profiles from Apple's server using the Refresh button in Xcode 4.6 (allows you to obtain automatically)

After trying all of these ways, I've still not been able to solve the issue. One problem I've seen is that at first hand, the certificate in the Keychain was showing an invalid status, which is now solved.

However, if I'm right, there are supposed to be two keys attached to the certificate. A public and private key, and these are not showing.

Neither are there any keys showing in the Keys tab in the Keychain Access.


Solution

(Thanks to nsgulliver)

  1. Do everything what the post (marked as Solution) of nsgulliver says.
  2. If you already have an active Certificate, click the Revoke button, this won't cause any trouble, you'll simply have to re-create the keys of which then will be generated a new certificate.
  3. Make sure you have the WWDR of Apple installed to mark the certificate authority as valid.
  4. Follow the default Provisioning Assistant guidelines.

Solution

  • Provisioning profiles installed on the devices or signed with for the target might not be valid, try to go to Organizer->Provisioning profile and see if the profiles have the valid status? if not try to delete & refresh them, if they appear valid after refreshing then it might solve your problem if not then you should remove all the entries from keychain and delete profiles on your provisioning portal and try to create from scratch, if you still face the problem then take help from step by step guide tutorial