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:
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...?)
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.