Distribution profile expired of an app in the App Store - ios

A lot of my certificates are expired today. I want to update my app that is currently in the App Store and saw that I need to create another distribution profile with the same bundle id. IS this correct?
So, for example my bundle id of the old distribution profile was "com.xxxx.1234" , now I need to create another one with the same "com.xxxx.1234" ?
Cheers and thanks

You should only have two certificates - one for development and one for distribution. Do not confuse certificates with provisioning profiles. They are very different though the provisioning profiles depend on one of the certificates.
If in fact your certificate(s) did expire (which they do once a year), create and install your new certificate(s). Once that is in place all you need to do is edit your existing provisioning profiles to use the new certificate. Do not create any new provisioning profiles, just update what you have.
Once all of the provisioning profiles are updated, download and install the updates into Xcode. Delete the expired ones.
Now update your project to be sure it uses the updated profiles.
No where in this process should you deal with bundle ids.

Related

How can I use the renewed provisioning profile for existing apps?

I have developed a couple of applications in iOS. Few days before my provisioning profile got expired. I renewed and downloaded it from apple developer portal. Now my question is how this new profile will get reflected in existing applications? Since there are many applications I won't be able to build it again with a new provisioning profile. So please let me know how to add this new profile with existing applications without a rebuild.
Thanks in advance.
The answer depends on what kind of builds you're concerned about:
App Store: expired provisioning profiles don't affect builds that have been downloaded from the App Store. You don't need to make a new build with the provisioning profile. You will, however, need to use the new provisioning profile if you update the app on the App Store.
Ad Hoc: builds will stop running if the provisioning profile used to create them has expired. You will need to make new builds and distribute them again.
Enterprise: you can update the profiles using the MDM protocol. See the "Provisioning Profiles Can Be Installed Using MDM
" section in the MDM Protocol Reference.

How to guarantee a seamless transition from a nearly expired provisioning file and a new one?

Context: A provisioning profile(PP) is nearly expired. The distribution certificate linked to it, will not expire for the next 2 years. The corresponding app is distributed over a MDM. All i read about renewing a PP is also including renewing the distribution certificate. But i just want to extend the PP with as little effort as possible.
Approaches: Either i would just press the "Generate" (on apple developer site while editing the PP) without changing anything or i would create a new one besides this one with same settings.
Questions: Which approach do you recommend? Is there a way, that i don't have to reinstall the app? What happens if i update this PP? Will the app run until the old PP is expired and then i have to install the new app with new PP?
I'd appreciate your input.
Yes, if the certificate is still good for a while, the best approach is to simply generate a new provisioning profile. Your existing deployments of the app will not be affected (as long as you don't revoke the certificate) because the existing profile is technically still valid until it expires.
Then, before the old profile expires, you have two options.
You can re-build the app with the new provisioning profile and push to the devices with your MDM solution. This will install the app AND the new provisioning profile on the devices. The app doesn't need to have changed - you are just using it to carry the payload of the new provisioning profile. The app will then work until the new provisioning profile expires (and you'll repeat this process next year).
If your MDM solution offers the ability to push the provisioning profile to your devices directly, take your new provisioning profile and deploy it to all the devices with the app. Once you have done this, the app will continue to run after the original, embedded provisioning profile has expired, because all iOS cares about is if there is a valid provisioning profile for the app ID on the device. No need to re-build the app, so this is preferable if there is no other reason to update the app.
Note that when your certificate expires, however, you will need to rebuild (or at least re-sign) the apps and redeploy them to the devices, so there will be no easy fix of just pushing a new provisioning profile when that happens. Plan ahead and give yourself enough time before the cert expires to make sure all necessary apps are re-built and redeployed.

Best way to renew the certificates for signing Apple products

My development and distribution certificates are expiring today. I have followed below link and got infos about creating a new one.
Proper way to renew distribution certificate for iOS
My questions are listed below:
What is the best way, revoke certificate and create a new one before certificate expires or wait for it to expire and then create a new one?
What will happen to the old one in keychain access, do i have to manually delete them?
We uses the same certificate in two different machine, do we have to delete the old one from machine's keychain on the machine and then create the new one and then export the new keys to other machine?
one of my provisioning profile has expiry date of 26/07/2017 however if I am changing the development certificate and distribution certificate so I need to edit and regenerate the provisioning profile as well because I am changing the certificate. Is this correct?
1) I would advise that you wait until they expire, then request new certificates in the certificates & identifiers section of the developer portal. Your certificates expiring will not affect any current apps you may have on the app store, it will only remove your ability to sign code. Once they expire, follow the steps to create new development and distribution certificates.
2) There is no need to manually delete your certificates from keychain access. Just make sure to choose the current ones in your Project's build settings.
3) Since you have two machines, you will have to download these 2 certificates to your other machine as well and add to keychain access.
4) Yes, you will need to regenerate your provisioning profiles using your new certificates, download them, then install them to xcode. You may also want to delete your old provisioning profiles. To do this, go to Xcode->Preferences->Accounts->(Choose apple ID here)->View Details. Now, right click on expiring profiles, hit show in finder, then delete them from finder. Also, remember to update which profiles your project uses in your build settings.

Regenerating a Provisioning Profile

I hope you can help me with this...
Situation: Regenerating a provisioning profile but still using the same developer certificates and app id:
What would happen to the app using the previous provisioning profile installed to users' device when the provisioning profile is regenerated in Apple Developer Center? Would the app still behave normally or no longer run?
If the app with the regenerated provisioning profile is being installed to a device where the app with the previous provisioning profile is already installed, would it be considered as an update or new install?
Thank you in advance!
As of questions #1, the app will work normally as long as:
The old provision profile has not yet expired.
The device UDID is included in the provision profile (relevant only
for developer certificate)
As of question #2:
As long as both apps has the same bundle ID it will be considered as
an update.
If both apps does not have the same Bundle ID, it will be considered
as a new install.
If the old app was deleted before installing the new one, it will be
considered as a new install.
If provisioning file is regenerated for same certificates i.e.., same bundle Id then it will be considered as an newly signed identity rather than an update. But if you revoke the certificates then the previous apps built with existing certificate will stop irrespective of provisioning files regenerated.The above situation applies only for Enterprise builds and not for Ad-Hoc builds.

Query regarding iOS certificate renewal

I have an app in appstore, whose certificate is about to expire in 20 days. So i created new distribution certificate & new provisioning profile(used same previous appid) > then recreated build & submitted to Appstore. My queries in here is;
Is above process is the proper way of doing it.
1) I haven't revoked old certificate, it's still in account. Do I need to do anything to it or just leave it alone?
2) what if users didn't update my latest build (with new certificate) from appstore & instead try to stay with old build that got certificate about to expire shortly? In such cases, what'll happen to app, once cert is expired?
Thanks in advance.
There was no reason at all to submit a new build to the App Store - at least due to the certificate. An expired certificate only affects your ability to use provisioning profiles. Existing apps are not affected at all.
Users that don't update will not be affected.
Feel free to delete any old certificates. Use the new one to create new provisioning profiles.

Resources