4 Ways to Prevent iOS Provisioning Profile Expiration

iOS provisioning profiles for in-house apps are only valid for 12 months. Their respective distribution certificates are valid for 36 months. The clock starts ticking the moment you generate either of them in the Apple Developer Center. Once the expiration date is reached, your app stops working. This is bad, as in-house app use cases are maturing from convenience (remember the Genentech Get-A-Room video?) to business critical.

Hence if the provisioning profile or, worse the distribution certificates expire, important business processes might get disrupted.

Often overlooked: the 12-month lifespan applies also to certificates required to send push notifications via the Apple Push Notification service (APNs). If you let an APNs certificate expire, the backend of the respective app won’t be able to send push notifications anymore.


1. Apple App Store

If your app (including all static content in the app’s bundle) can be exposed to the public, going through the App Store might be actually a good choice. Of course, there is always the review process to deal with. This process creates a number of challenges, ranging from introducing the risk of an important bug fix update being rejected, important features being impossible to implement due to the review guidelines, to additional delay into the release process, making continuous delivery difficult to achieve.

If your app is being built by a third party, you could also explore a path less traveled: Custom B2B. Custom B2B uses the Apple App Store but does not expose your app to the public. With the Custom B2B option (actually a checkbox in iTunes Connect), third-party developers can submit an app to the Apple App Store and limit visibility of the app to a list of designated Volume Purchase Program (VPP) Apple IDs.

If you have one of those Apple IDs, you can ‘purchase’ the app (the price can be set to zero), while everyone else will neither see the app on the Apple App Store nor in the VPP portal. You can then manage the distribution of your app just like you would manage the distribution of a public app purchased through VPP.

While Custom B2B lets you avoid all the problems related to the limited lifespan of provisioning profiles, it introduces a lot of complexities on its own and does not bypass the Apple review process. Hence few organizations seem to have adopted it.

2. Managing with Spreadsheets

A spreadsheet is not the worst start and should contain at least the following: App name, contact information of the app owner, App ID, provisioning profile expiration date, distribution certificate expiration date, and the APNs certificate expiration date if applicable. If you manage to start maintaining such a spreadsheet before the first incident caused by an expired provisioning profile, you get extra points for having a head start compared to a lot of other companies.


3. Automated Email Notifications

The drawback of the spreadsheet solution is that you have to develop and maintain a monitoring routine and manually send advance warnings to app owners affected by soon-to-expire provisioning profiles, distribution certificates or APNs certificates.

I’d instead recommend replacing the manual routine with an automated solution. If you’d rather buy than build, our own mobile app release automation software incapptic Connect can automatically notify relevant stakeholders, such as Apple Developer Enterprise Program team admins, app owners, and app developers, based on policies you define.


How do you get started?

It’s a good idea to assess where you currently stand. Create a report of all in-house apps in the field, and check provisioning profile, distribution certificate and APNs certificate expiration dates. You should also take a look at the renewal date of the Apple Developer Enterprise Program while you’re at it. Armed with this information, you can assess if anything is about to go wrong in the next 3 months, and contact the relevant stakeholders. Then decide which route you would like to take to prevent expiration incidents for the next 12 months. Let me know how it goes!