I am having Code signing error while distributing second enterprise (when i do Product - Archive)iPhone app. It says
Code Sign error: Certificate identity 'iPhone Distribution: XYZ, Inc.' appears more than once in the keychain. The codesign tool requires there only be one.
I have -
Apple Enterprise License
Created Enterprise Distribution Certificate
Created Separate App ID for each app
Created Enterprise Provisioning profile for each app
With this my first app works fine. The second app has code sign issue. In Xcode Organizer all profiles are valid and i can select correct provisioning profile from Build Settings but it is throwing above error when i do Product - Archive.
Open keychain on your MAC. Look at certificates. If you see multiple instance of 'iPhone Distribution: XYZ, Inc', expand and check if the key is available and the date for the two, delete one of them which is not needed. Lock the changes on keychain. Then retry archiving your app.
Related
I developed an iOS (the swift based) application for my client. I have enrolled Apple developer program and my client have different one too. My client want from me the Xcode archive, which he can publish on AppStore (he need to re sign with his certificates). He send me his provisioning profile, but I'm unable to generate the Xcode archive. It fails with:
No signing certificate "iOS Distribution" found: No "iOS Distribution" signing certificate matching team ID "XXXXXXX" with a private key was found.
I also tried to disable code signing in iOS SKD but this is not helping.
How can i solve this problem?
Your client needs to send you his iOS Distribution Certificate (exported from Keychain with his private key) and then you can archive from your xcode.
If he don't know how to do that, he can simply give you access to his Apple developer account (a limited developer access is enough) and then you can generate the iOS Distribution certificate by yourself.
I solve this problem as is written above. Client made me part of his team. So I can set provisioning and signing certificate from his team. Now I was able to generate Xcode archive and send him to my client.
I followed this tutorial.
Just to try and test my ever first app in my iphone , but when creating the app in archive I get the error :
Check dependencies
The identity 'iPhone Developer' doesn't match any valid, non-expired certificate/private key pair in your keychains
in the Scheme I selected the iOS Device .
What am I doing wrong ?
In Navigator click on your project, then choose your Target and in Build Settings look for Code Signing.
In Code Singing Identity you can set your developer certificate/provisioning profile which will be use to sign you archive.
As fas as I'm concerned most used configuration is:
Debug: iPhone Developer: your_name from iOS Team Provisioning Profile
*
or
iPhone Developer: your_name from com.company.appBundle
(it depeneds how to generated Provisioning Profiles in developer.apple.com)
and for
Release: iPhone Distribution from com.company.appBundle
especially when you are using iCloud or In-App Purchases (even if you are testing your app).
P.S
When deploying to TestFlight you can sign your app with Ad Hoc profile.
When depolying to iPad you are still using "iPhone Distribution Prov. Profile".
Can I have more than one Distribution Certificate? I am developing an app but the current certificate was not created by me and is for another app. That app and cert was done by someone else who is no longer here.
I downloaded the vert, but in the organizer it tells me, Valid signing identity not found.
What am I to do?
Thanks for the help.
The error is shown, because a valid Signing Identity is not found. The Apple Documentation clearly describes how to export/import it. You should ask the certificate's creator to export his own copy of the certificate (because it can't be re-downloaded from the iOS Dev Center), then you can import and use it.
There's a difference between certificates and provisioning profiles.
Certificates are associated per account while provisioning profiles are for individual apps under each account.
If you are working with multiple iTunes / Apple Developer accounts, then yes you should have a certificate for each of those accounts installed in your keychain.
And assuming your app has it's own application (bundle) ID, you need to have a provisioning profile for each of the apps you're developing under that account. There are different provisioning profiles for distributing ADHOC builds and the Store build that gets uploaded for review by Apple.
It sounds like you need to start with just getting the certificate for the account you want to work with, then the provisioning profile.
Whenever I try to build my iPhone app in Xcode 3.2.1 I get an error that says:
Code Sign error: The identity 'iPhone Distribution: foo' doesn't match any identity in any profile
This is a distribution certificate, however it worked perfectly with a developer certificate.
I have revoked and installed all of my iPhone certificates, and Google hasn't been of much help either. How can I build my app without this error?
This looks similar to an earlier question, that says you need to generate a new provisioning profile for your new certificate.
EDIT:
From looking at the Code Sign error, it seems it is trying to match up your distribution certificate with a provisioning profile.
I have not yet distributed an app to the App Store, but it seems you have to create an "App Store Distribution Provisioning Profile". See this doc from the Apple Developer Connection.
I am building my app for adhoc distribution and appstore distribution. When I go into the Xcode code signing settings, there is only two listings in there: Developer:<...> and Distribution: <...>
I know I have three certificates in the system, one for developer, one for adhoc and one for appstore distribution. How can I tell which certificate a particular app bundle has been code signed with just to make sure?
In XCode's Organizer you have a list of Provisioning Profiles. Each provisioning profile has an associated profile identifier, which looks something like a GUID. When you build your app and XCode signs it you'll see that profile identifier displayed in the signing step: something like:
~/Library/MobileDevice/Provisioning Profiles/01234567-0123-0123-0123-012345678901.mobileprovision" -o ~/.../MyApp.app/embedded.mobileprovision
(The line in the Build Results window will start with "ProcessingProductPackaging"...