Cannot use IOS distribution certificate - xcode

I need to upload an app on the account of a client. I logged in with xcode but I can't select the IOS distribution code signing profile, I tried to download the IOS distribution certificate from their member center
But even if I download it and double click in order to install it on the keychain I cannot use it.. Should I create a new IOS distribution certificate or is there a workaround?

I'm not 100% sure. I think you need to have their developer profile installed on your computer. It will want you to export the profile from the keychain on their Mac and you would install on yours. If they only have an account but do not use it for anything other than to sell their app you might be in a better position to just set it up on yours. If they do have it installed then it can be a bit tricky. I don't expect this to be an answer but I hope it helps you find the solution.
Good luck!

You cannot use it, because private key should exist at your machine for this certificate, you cannot download it from anywhere except the export process from machine for which it was generated. In your case request new certificate for your machine.

Related

Xcode: "Your account does not have permission to create iOS Distribution Certificates" as Team Member

Forward: There are many similar SO questions with regard to this error. I've visited dozens of them over the past days, but none seem to have a solution to my problem. They mostly are from developers with full admin rights, unlike myself. Most solutions are also hacks or unclear.
I am a member of a developer team at Apple's developer.apple.com site. I've been charged with uploaded an iOS application I've developed to iTunesConnect, in order to be able to deploy it with TestFlight.
In order to successfully accomplish this. I asked for the following to be done.
That I be added as a member developer. See certificates here.
A matching App with the same bundle-ID be created for me on iTunesConnect.
A Distribution provisioning profile be added at developer.apple.com for my specific App.
Despite all of this. When I try to validate the app, I'm met with the following message.
It would appear from a manual signing attempt that because the provisioning profile was created by a team administrator, that I cannot sign it without their private key. Assuming this is correct, then how can any developer ever distribute apps if:
A distribution provisioning profile requires you be the creator in order to be validated.
Only a team admin can create a distribution provisioning profile.
This appears to be a paradox.
What can be done to resolve this conflict? I am only a member of this development team temporarily, and would like to formulate a clear solution to this problem so that I do not test their patience with repeated troubleshooting questions. To make it easier to answer this question, I've attached some extra images that might be useful.
My app's general panel in Xcode when using automatic signing. It shows I am signing on behalf of the team.
Solving this problem required two steps.
A certificate signing request (CSR) was created and sent to the developer who had created the distribution provisioning profile. You can create a CSR by going to: Keychain Access > Certificate Assistant > Request a Certificate from a Certificate Authority. Once I received this CSR back from the developer, I double clicked it to install it in my keychain. It then appeared as so:
Next, the developer had to add the certificate they sent me to the provisioning profile for the app on developer.apple.com. I then downloaded this provisioning profile again and selected it in within Xcode as seen below.
Once this is completed, you should be able to validate the application.
I got this error when my ExportOptions.plist file had the wrong value for the method. I had "enterprise" rather than "ad-hoc". (This is the file passed to xcodebuild via the -exportOptionsPlist option.)

Xcode -2 developer accounts?

My Xcodeis registered under our developer account which is a company developer account.
I have to upload an app from that same Xcode, for another company's developer account.
I just got lost in the details, expect from setting the code signing and the bundle name, what file do I have to import to be able to keep both developer accounts on this mac? (Xcode)
Just import their provisioning development and distribution files into Xcode? Or do I need to do something else with the certificates?
Thanks.
You can add as many as developer accounts in your Xcode, it won't have any issue. Whatever the profiles is created that can be download manually (or automatically). Once you're done you need to provide an exact bundle identifier which is associated with a particular account. In most of the cases, Xcode will tell you to select correct Team + Provision Profile (will be visible automatically). You're good to go with that.
References:
https://developer.apple.com/library/ios/documentation/IDEs/Conceptual/AppDistributionGuide/MaintainingCertificates/MaintainingCertificates.html
https://stackoverflow.com/a/21481203/1603234

Xcode 4.6 - "Valid signing identity not found" for Distribution provisioning profile

I'm examining the process of submitting an app to the App Store and I'm having some kind of trouble here. I've been following this tutorial.
I've created a Distribution Provisioning Profile, which I downloaded and added to Window - Organizer - Devices dragged in 'Provisioning Profiles' under the Library heading in the sidebar. What I see there is this:
I've tried revoking all my certificates and adding them once again to my Keychain Access, but it didn't help. Even after refreshing the provisioning profiles in Xcode.
Also, I've read that this happens often if I change the machine I'm working on, but this is not my case. I've developed the app on the same Mac, I'm on right now.
I'm willing to provide more information to help reach to a solution to this problem if needed. Thanks for your help in advance.
Things to check:
Make sure in Keychain Access that the certificate you are needing to use has the private key stored with it.
Make sure the bundle identifier matches EXACTLY with what you have for the AppID (unless you are using the Wildcard identifier)
Make sure the provisioning profile you selected uses the certificate created.
Make sure that you download that provisioning profile and are using that to sign the distribution settings of the target.
If all this is done, it should work fine.
Also, I gave a talk about certificates and provisioning for iOS. Here is a link to the keynote PDF which explains the process of how I do things.
Just restart XCode.
Sometimes everything done through the documentation, but XCode does not work properly.
If you are still stuck by this problem, try to do the whole process again.
Go to keychain, delete all the iPhone certificate and then do routine stuff. I faced this issue before for some reason, So I just redo it. Good thing is it won't take long time, just 5 mins : )
Hope this can help you.
I solved this issue by opening the KeyChain Utility and deleting expired provisioning profiles. I updated my profile at members page of developers.apple.com following all the instructions.
Then opened up my application with Xcode 4.6 . Under Build Settings selected iPhone Developer with my name.
My issue was the old developer profile id and the new id were the same and I did not realize this. Removing the old one allowed the new to be used.
Solution: I solved my latest run with this issue by simply choosing a Development profile and Identity and building and running and then switching back to the Distribution profile and Distribution Identity.
Background:
My build was working last night, I switched to a different branch, tried signing the same way and it just continued to fail/say that there was no matching valid signing identity).
I tried restarting Xcode, restarting Mac, deleting invalid/expired profiles etc. Then just out of a need to test a run, I switched to the development profile (I am testing IAP with the Distribution profile), then when I switched back, it just worked!
One thing that is weird during this process is that the profile on the device does not seem to match the ones I have on disk, and during that process when I tried to add the one on disk to the device it was not highlighted as a valid selection (my dev one's were).
Even after running, the device still shows some different version of the same mobileprovision (different initial code and expiry is one day different than the one I have. I am working in a shared device environment so I don't have complete access/visibility to where these versions all came from).

Can't validate and submit an App to the Mac App Store

I've done codesigning and submitting for iOS apps countless times. This time it struck me with the Mac App Store. I'm repeatedly getting the same error message:
"My Name" is a valid identity. However,
you do not have the associated package identity.
I've recognized this 2 topics here on stack overflow:
mas-code-signing-identity-private-key and mac-app-package-identity-not-installed
Nothing inside there solved the problem for me.
Thats how I (most reliably) reproduce this message:
I clean up all my certificates and private keys starting with "Mac Developer" or "3rd Party Mac Developer". Of course also the expired ones.
Revoking all the stuff inside the Mac certification portal.
Create App-ID (did it only once)
Create new certificate for Mac Development. I can only assume that this is comparable to the debugging certificates for iOS development.
Create new certificate for Mac App. Once again I can only assume that this could be something similar to a distribution certificate in iOS-development.
For completion reasons create a new certificate/profile for my system.
Create a production provisioning profile. I can only assume that this might be equivalent to an iOS distribution profile.
I then download all the certificate mess and install it properly. Some go into the Keychain, others got into the Preferences and XCode.
For making sure I restart XCode or even the whole Mac (doesn't change the frustrating outcome anyway).
I go to the project build settings and select the production provisioning profile, because I assume "production" is equivalent to "distribution". Changing the codesigning identity in the target build settings doesn't work either. While Apple claims in it's documentation that for App Store submission the signing identity has to be changed in the project build settings.
I run an archive build.
I select the archive in the organizer and click validate.
This error message appears:
"My Name" is a valid identity. However,
you do not have the associated package identity.
I can't find any pointer to what the term "package identity" actually means. What is most frustrating to me is that this terminology mess in Apples documentation concerning the code signing and submission process appears not very clear and precise to me. At least not as clear and precise as the documentation for the same process concerning iOS App submission (which is using completely different terminology).
Probably I understood something wrong? Thanx for any help or pointer in advance.
OK, I have some important pointers (additional to Apples documentation) for people stumbling over similar issues.
The error message is totally misleading.
Don't take every word in Apples documentation too seriously.
For solving the issue, 2 points have been most significant:
Additional to all the other profile-mess you need 2 certificates for submission to the Mac App Store (contrary to the same process for iOS App Store submission). Both have to be installed together with their corresponding public and private key pairs.
Mac App
Mac Installer
The codesigning needs to be set on the build target, not the project. I don't remember where but this was described wrong side around in one of Apples documentations.
Eventually my submission worked by keeping to those 2 points.
There is an additional issue with Keychain & XCode.
When Xcode uses a certificate, they want one and only one certificate in your keychain. If you have an expired one, as well as a valid one, Xcode often fails the operation.
So you look at your keychain using Keychain Access, and do not see an expired certificate. It is still there! The default setting for Keychain Access hides expired certificates. Goto the View menu and select Show Expired Certificates. Delete all the expired ones, they are not good for anything.
Quit Keychain Acces and Relaunch Xcode. Xcode often requires a relaunch when adding/deleting certificates.
At that point, the Archive Validate process worked for me.
This is what it was for me as well.
Just want to clarify, you absolutely need both Mac App Distribution and Mac Installer Distribution certificates. Thanks Jacque for your explanation above. It should look like this:
Yes the problem is Mac Installer Distribution certificate.
The easiest way to have everything fixed and loose all the troubles just go to Xcode->Window->Organizer->Devices and then on the lower right corner press on Refresh and log in with your account... xcode will generate and download all the certificates and provisioning profiles needed.

code signing identity <name> does not match any valid, non-expired code-signing certificate

I'm hoping someone can help me resolve this maddening issue. My friend and I are developing a mac store app, hosted on github. We published the app a month ago from his machine, with his dev center account. I recently pull the source from github onto my machine, to work on an update, but when I try to build it in xcode, I get the error:
"code signing identity does not match any valid, non-expired code-signing certificate in your keychain"
I downloaded the 2 certificates from my friend's account on the dev center and put them in my keychain, along with the general apple certificate, but I still get the same error. Is there a private key issue here? I am not sure why I even have to sign the code? All I am doing is trying to build it and run it in xcode. Any help would be much appreciated.
Change your build to Debug or Release.

Resources