How to download private key certificate Distribucion iOS? - ios

I appreciate if someone can guide me about the use of the iOS Distribution Certificates of the Apple development store.
I see that there are already three iOS Distribution certificates created and that this is the limit, therefore I cannot create another one. I have an application that I will upload to the Apple store, but the following error message appears:
Missing private key for signing certificate. Failed to locate te private key in the keychain
My question is, to get that private key, is it possible to download it from the developer store? or how can I get it?

Add Private Key
Within the Keychain Access menu select File > click Import Items. Browse to the .p12 or .pfx file that you want to import and open it. In the Add Certificates window select System in the Keychain drop-down and click Add. Enter your admin password to authorize the changes and click Modify Keychain.
Creating the iOS Distribution Certificate
Log in to your Apple Developer account and navigate to Certificates, IDs & Profiles > Certificates > Production.
Add a new certificate.
Set up a certificate of type Production and activate App Store and Ad Hoc.
Click Continue.
To proceed with the next step you need a Certificate Signing Request (CSR).
Create ".cer" file in iOS developer account
Login to apple developer account Click “Certificates, Identifiers & Profiles”
Click “Provisioning Profiles”
In the “Certificates” section click “Production”
Click the “Add” (+) button at the top-right of the main panel.
Now, choose “App Store and Ad Hoc”
Click Continue.

Related

Distribution Managed Expiration?

Currently my Distribution Managed expires . Now the question that I have is do I need to revoked it and then create a new one? Im a bit confused because I cannot find that specific Certificate under the create a new certificates. So what do I need to do with it?. I already created a new Distribution certificate. But what know about the Distribution Managed one?. Also is there a way to automatically update or create a new certificate before its expires?
MY App is written in Flutter .
A little bit of information about certificates can be found here. The most important bit:
Development certificates belong to individuals. In your developer
account, the computer name is appended to the development certificate
name (for example, Gita Kumar (Work Mac) where Work Mac is the
computer name) so you can identify them.
...
Distribution certificates
belong to the team but only the Account Holder or Admin role can
create distribution certificates (if you’re enrolled as an individual,
you are the Account Holder).
Certificates can't be renewed (at least manually, afaik), you have to create a new one that is then used for new app updates from now on. Afaik, an expired distribution certificate won't prevent anyone from using your app, it just means that you can't export/release new versions.
Steps to create and import a new distribution certificate (check below for a possible faster way):
Close Xcode
Go to https://developer.apple.com, log in, click on "Account" (top right), then go to "Certificates, IDs & Profiles", which lists all your current certificates.
Click on the blue "+" next to the "Certificates" header.
On the next page pick "Apple Distribution" (for Xcode 11+) - "Next"
Now you have to upload a "Certificate Signing Request" (".certSigningRequest" file), more information and a screenshot can be found here:
Launch Keychain Access located in /Applications/Utilities.
Choose Keychain Access > Certificate Assistant > Request a Certificate from a Certificate Authority.
In the Certificate Assistant dialog, enter an email address in the User Email Address field.
In the Common Name field, enter a name for the key (for example, Gita Kumar Dev Key).
Leave the CA Email Address field empty.
Choose "Saved to disk,” then click Continue.
Click "Continue" and download the new certificate (".cer" file).
Double-click the file, this automatically opens the Keychain Access app and imports it.
Now you can open Xcode again. To check if the import was successfull, go to Xcode - Preferences - Accounts - Select the Apple ID on the left side, then click "Manage Certiciates" in the bottom right. You should now see a new "Apple Distribution" certificate with a creation date of today.
In the same window there's also a "+" button in the bottom left that gives you a list of new certificates you can create. This might be a faster way but I haven't tested it yet.
For an additional check archive your app as usual, then, while exporting (I use "Ad Hoc"), it should show the name and date of the certificate that was used on the very last page.
On the website you can now click on the expired certificate in the list (if it isn't already gone) and "Revoke" it (red button in top right).

Adhoc certificate expired issue

I have receive an Expired status on the Ad Hoc provisioning certificate which i have created few weeks back. Why am i getting this issue unable to know that
Apple requires it’s developers to rebuild and redeploy their apps with a new Provisioning Profile each year. Here are the steps that you would need to follow when your profile is close to it’s expiration date so you keep your app running without interruptions:
1) Go to developer.apple.com and navigate to the Member Center -> Certificates, Identifiers & Profiles
2) Go to Certificates -> Production
3) Here you will see all your production certificates. I’m assuming most of them have or soon will be expired. So go ahead and request a new certificate by clicking on the Add (+) button.
4)On that Add iOS Certificate screen, select In-House and Ad Hoc option and hit Continue.
5)Now before we can continue, let’s open Keychain Access on you computer and generate a Certificate Signing Request by going to Keychain Access -> Certificate Assistant -> Request a Certificate from a Certificate Authority
6)In the window that pops up, enter your email address and common name.
Save the .certSigningRequest file to your disk.
7)Now go back to your browser window and upload the .certSigningRequest file which 8)you just created and click on Generate.
9)Download and open the .cer file which you just generated in Keychain Access. You should now be able to see the newly generated certificate with a new expiration date.
10)Now go back to the browser and navigate to Provisioning Profiles -> Distribution
11)Click on the provisioning profile in question and click on the Edit button.
In the certificates field, select the new certificate which you just created and click Generate.
12)Download and open the new provisioning profile (.mobileprovision) in the Organizer. You should now see the new expiring date (a year from now) on that as well.
13)Delete the old profiles to avoid confusion and rebuild your app with the new one
14)Once you’ve rebuilt the app, just install it again on all devices in question.

ERROR ITMS- 90035 invalid signature

I am trying to upload ipa on apple store but it’s giving me “ERROR ITMS- 90035 invalid signature” error.
I have followed below process.
The first step in setting up a distribution profile is to create a certificate signing request. You can do this on your Mac. Launch the Keychain Access.app that is stored in Applications/Utilities.
Then execute the following steps in yourKeychain Access application:
Select Preferences > Certificates and ensure that Online Certificates Status
Protocol (OSCP) and Certificate Revocation List (CRL) are set to Off.
Select Keychain Access > Certificate Assistant > Request a Certificate From a
Certificate Authority... and ensure that you do not have any of your certificates
highlighted, otherwise the Provisioning Portal will not accept your certificate request.
Enter your valid e-mail address in the User Email Address field. Ensure that the e-mail
address is the same as the one you used when you registered as an iOS Developer.
Enter your name in the Common Name field. Ensure that the name you enter is the
same as the one you used when you registered as an iOS Developer.
A CA Email Address is not required.
Select the Save to disk radio button and tick Let me specify key pair information,
if it is present.
Press Continue.
A dialog appears that allows you to specify where you would like the certificate signing
request to be stored.
Specify a location and select Save.
Press Continue.
The certificate is then generated and written to the file you specified under step 8.
After you have generated a certificate signing request, you need to submit your certificate for approval.
Log into the iOS Provisioning Portal that is accessible from:
https://developer.apple.com/account/ios/certificate/certificateList.action.
This link takes you directly to the Certificates, Identifiers & Profiles section of your iOs developer account. Select the "Production" tab and follow these steps:
Select the Add Certificate button.
Select "App Store and Ad Hoc" as type then press continue
On next screen press "Continue"
On next screen select "Choose File" and select the certificate you created in previous step and then press "Generate"
Remain on the same page as the one you were on when you submitted the certificate signing request, then follow these steps to download and install the certificate:
Download Generated certificate by clicking the "Download" button.
Double click the downloaded certificate to install (alternatively drag to the keychain utility)
It is important that you backup the keys you created. This allows you to develop on multiple Macs or reinstall the keys after unexpected data loss.
You can export your private keys and certificates through the Keychain Access application:
Open the application Keychain Access.app that is stored in Applications/Utilities.
Select Keys.
Highlight the private key associated with the distribution certificate.
Select File > Export Items.
A window opens that allows you to specify where you would like to save your certificate.
Select Personal Information Exchange (.p12) as file format.
Select the file name.
Select Save.
You are prompted for passwords that allow you to access the key in the future
This is the final stage and will create the distribution provisioning profile you need to use when building your iOS standalone.
Start by selecting the "Distribution" tab from "Provisioning Profiles"-
Select New Profile (+)
Select App Store as the Distribution Method.
Enter the Profile name.
Ensure that your Distribution Certificate has been created and is displayed correctly.
Select the appropriate App ID for your applicatoin
Select Generate.
Select the Download button from next to the Distribution Provisioning Profile you created.
This allows you to download the .mobileprovision file.
Double click the .mobileprovision install the Distribution Provisioning Profile on your computer.
This is the process I am using to generate ipa. Then I want to upload this ipa with application loader , But it’s giving me signing code error. Please see attached screenshot .
Please help.
enter image description here
There are several reason for such type of error comes.
First of all you need to refer this Troubleshooting Failed Signature Verification
After above guide, you need to check all steps which write in the images like .
1) Make sure you have signed your application with distribution certificate not adhoc or development certificate.
please check what certificate you have used? follow this link
How to tell what profile/signing certificate was used to sign .ipa?
or this link also helpful for you
Maintaining certificate
2) you need to check your codesigning portion(=>provisioning profile) that all certificate selected correctly or not and also check bundle identifier in plist.
Note:- you need to set it at both place -> project and -> target
and at last last check that in all process you have selected [IOS Device] in place of [Simulator]
to check full process please check Submitting an App to the iOS App Store (Xcode) this video.
I had emojis in some filenames in a React Native app. After removing emojis now everything works.

What are the general steps to recreate expired push certificate profile?

I get nervous when I dive too deep into certificates, identifiers, and profiles in iOS. I have an expired distribution push provisioning profile. It expired and I use parse as my push notifications server. I think what I need to do is
-Go to Apple Dev Center
-Create a new provisioning profile with same app id
-Create a new cert signing request and p12?
-Upload p12 to parse?
-Use new provisioning profile and submit app to app store
(I need to update the app anyway)
Is this how I should go about it? If not, what are the general steps. Thank you!
Open Keychain Access Application on your computer. On the top menu, go to
Keychain Access --> Certificate Assistant --> Request a Certificate from a Certificate Authority
Enter your email address (the same one you used for your Apple Developer Program) and choose Saved to disk option. Give the new file a name and save wherever you want the .certSigningRequest file.
Afterwards log in into your Apple Developer account and navigate to Certificates, Identifiers & Profiles section. Under the Certificates section choose Production. Select your App ID and click continue twice. When it prompts you to upload a file, upload the recently requested .certSigningRequest file and click generate. Then download the .cer (certificate) file. Double click the .cer file to open it and store it in the keychain.
Once again, go to Keychain Access Application. Under the certificates category select your newly created certificate, right click the certificate and select Export "Apple Production IOS Push Services: Your App ID". Save this file in the .p12 (Personal Information Exchange) format.
Now, go to your Parse app. Under settings select the Push option. In the Apple Push Certificates section, optionally delete your previous expired certificate and choose select your certificate and upload the .p12 file.

iOS app how to submit using client's profile

We are developing an iOS app and we are using our company iOS Dev account (our provisioning profile) for that.
Now the client wants to submit the app using his Apple account.
If our client doesn't have a Mac I think we'll have to create the ipa file and send him. But I'm not sure how I can create the distribution file using their provisioning profile.
Can you please explain what is the process followed in this kind of a scenario?
Do I need to create another apple account and add it to the client's iOS Dev account and create the ipa file using that provisioning profile or is there any other way to do this?
Superb Question.I have stuck with this lot of times.After that i made me doing very simple and easy.
The first thing is you have create the App Id for your application in
-> Developer.apple.com
-> Member Center
-> Click certificates
-> where you can see the app id (It is in left side of the window).If you click app id in center page you can see the old app id's.
-> In above click + symbol for adding new app id for your app
Go to key chain access.If you do not find out that,just enter in spot light.It will come.
->Click the key chain access and go to toolbar of the Mac
->where you can see the Apple Symbol,Keychain Access,File,Edit,View,Window,Help
->Click Keychain access
->Then Click Certificate Assistant
once you click that you can see the options.
->Then click Request a Certificate from certificate Authority.
->Now Certificate information box opens.
->Give user email address
->Then click save to disk only.
Now if you see the desktop,there is CSR.It is used for creating developer and distribution.
3.Go to developer.apple.com site
-> Member Center
-> Click certificates
Click Developer Certificate
->Click + add button
->Select IOS Apple Development for Developer Provisional Certificate
->It asks you CSR for the Generating Developer Certificate
->Just choose from Desktop.
->Click Generate
->Double Click for Download
->If you give the correct CSR it shows developer certificate in keychain with key.
Click Production Certificate
->Click + add button
->Select IOS Apple Adhoc Distribution for Distribution Provisional Certificate
->It asks you CSRstrong text for the Generating Production Certificate
->Just choose from Desktop.
->Click Generate
->Double Click for Download
->If you give the correct CSR it shows production certificate in keychain with key
Click Development Provisional for running the app in device(It is in left below of the window)
->Click + button.It is on above.
->Choose your app id from list app id list (drop down list)
->Then Give the name to development provisional
->Select or Choose the Development Certificate
->Also Choose or Select all devices or particular your client device
->Then submit(generate and done)
->Click Download
->After that Double Click the downloaded certificate.
->If you check in xcode (Click project and choose Build Setting -> click code signing)
->First choose your provisional certificate(Your downloaded development certificate is appearing just select that)
->After that click Code Signing Identity and select the Developer Certificate from the list
->Finally Targets-Code Signing
->First choose your provisional certificate(Your downloaded development certificate is appearing just select that)
->After that click Code Signing Identity and select the Developer Certificate
Click Distribution Provisional for running the app in required devices(It is in left below of the window)
->Click + button.It is on above.
->Choose your app id from list app id list (drop down list)
->Then Give the name to Distribution Provisional
->Select or Choose the Production Certificate
->Also Choose or Select all devices or particular your client device
->Then submit(generate and done)
->Click Download
->After that Double Click the downloaded certificate.
->If you check in xcode (Click project and choose Build Setting -> click code signing)
->First choose your provisional certificate(Your downloaded distribution certificate is appearing just select that)
->After that click Code Signing Identity and select the Distribution Certificate
->Finally Targets-Code Signing
->First choose your provisional certificate(Your downloaded distribution certificate is appearing just select that)
->After that click Code Signing Identity and select the Production Certificate
Finally Archive this for ipa.
NOTE - Give the Correct App Id in .plist Then only it accepts and run.

Resources