How to Renew Your Apple Developers Certificate

Renewing Developers Certificate and Provisioning Profiles

Code written on a computer

Hor Kosal / EyeEm 


One of the aspects of developing iPad apps that can have a developer pulling their teeth out is getting setup to do proper code signing for compiling apps and transferring them to the iPad for testing. And as if doing it once isn't enough, the horror actually grows when it comes time to renew the developer's certificate.

How to Develop iPad Apps

Unfortunately, Apple doesn't warn you when your certificate expires, so the first thing you are hit with is an error telling you that your iPad doesn't have a proper profile installed on it. This can throw you for a loop because the profile itself may not have expired, but if the certificate it is tied to is expired, the profile will stop working.

Figuring out that it is the developer's certificate that is expired is half the battle. The other half is properly getting a new one set up and attached to your profiles. Here are the steps you'll need to take to get everything set up and working properly again:

Review: Corona SDK for iPhone and iPad Development

  1. Request a new certificate. You do this in the Keychain Access application, which you can find by going into your Mac's Applications and clicking on the Utilities folder.

  2. Inside of the Keychain Access, you will see the certificates listed. The certificates needed for development will be named something like "iPhone Developer: [name]" and "iPhone Distribution: [name]". They will also have a red circle with an X in the middle designating that they have expired. You will want to delete the expired certificates otherwise you can run into problems code signing your applications.

  3. After you have cleared out your expired certificates, you need to generate a file requesting a new one. Do this by going into Keychain Access -> Certificate Assistant -> Request a Certificate from a Certificate Authority.

  4. Enter a valid email address, your name and choose "Saved to disk" from the options. Click continue to save the file.

  5. Go to the Certificates section of the iOS Provisioning Portal to upload the file and receive a valid certificate. Once you've uploaded it, you will need to wait a few minutes and refresh the screen for it to be issued. Hold off on downloading the certificate for now.

  6. Choose the Distribution tab in the Certificates section and go through the same process to make sure you have a certificate to distribute apps as well. Again, hold off on downloading the certificate for now.

  7. Go to the Provisioning section of the iOS Provisioning Portal.

  8. Choose edit and modify for the profile you want to use to code sign your apps.

  9. In the Modify screen, make sure there is a check mark next to your new certificate and submit the changes.

  10. Click on the Distribution tab and go through the same process with your distribution profile. Again, hold off on downloading these profiles.

  11. Launch the iPhone Configuration Utility.

  12. Go to the Provisioning Profiles screen in the iPhone Configuration Utility and remove your current provisioning profile and your distribution profile even if they have not yet expired. You want to replace them with your new profiles attached to the new certificate.

  13. Now that we have your Mac's codesigning certificate and profiles deleted, we can start downloading the new versions.

  14. Go back to the Provisioning section and download both your provisioning profile and your distribution profile. Once downloaded, you should only need to double click the files to install them in the configuration utility.

  15. Go back to the Certificates section and download the new certificates for development and distribution. Again, simply double-clicking the files should be enough to install them in the Keychain Access.

And that's it. You should be ready to install test apps on your iPad again and properly submit them to the Apple app store. A key part of these steps is cleaning up the old files to make sure Xcode or your third-party development platform does not confuse the old files with the new files. This avoids a major headache when troubleshooting issues with the process.