Why iOS apps signed with development or enterprise certificates launch slower? Why iOS apps signed with development or enterprise certificates launch slower? ios ios

Why iOS apps signed with development or enterprise certificates launch slower?


In my case, I think it was due to the devices having literally a ton of different provisioning profiles installed in them (for some reason, the "Profiles" entry in the Settings app is no longer available... but they show in Window / Devices / Show Provisioning Profiles...).

In theory, you should have to delete all the profiles from within Xcode's "Devices" window. However -at least as of Xcode 6 in my environment- this is very unresponsive (either by clicking the menu's button or hitting the Delete key) to the point of almost beach-balling, and the displayed list itself sometimes seems to be very inconsistent from one plugging of the device to the next (perhaps it is cached? an Xcode bug?).


TL;DR:

So instead, I just reset my devices to factory settings ("Delete all settings and Data"), and now my apps launch immediately (iPad Air) and almost immediately (iPod Touch 5th Gen).

I believe (but this needs confirmation) that the reason why all those provisioning profiles where installed on the devices in the first place is that, in the Target's General/Identity pane I specified the "Team". Now, I have these settings:

  1. Target / General / Identity

    Bundle Ientifier: com.MyCompanyName.AppName

    Team: None

(Setting the team seems to cause Xcode to install all provisioning profiles from the developer portal into the device...?)

  1. Target / Build Settings / Code Signing

    Code Signing Identity: iOS Developer

    Provisioning Profile: Automatic

...and on Run, only one of my profiles (one of the Xcode-managed "iOS Team Provisioning Profile" ones) gets installed on the device.

Addendum: Searching the internet for "Xcode specify team why" yielded this documentation page by Apple on setting the Xcode Team.Hope it helps.


UPDATE: Still the same as of Xcode 7.x


Delete all duplicate provisioning profiles on your device. You can do this in Xcode->Devices, than right click on your device "Show Provisioning Profiles...". In my case I had installed more than 300 different profiles.

After deploying again, my app launched immediately instead of waiting 5-8s each time.


Could it be that the device is checking non-appstore builds against a Certificate Revocation List? And that list is possibly online?

If the latter were true then you might get a faster launch by enabling Airplane Mode.