I can't help noticing on my iPhone 5 that the apps that are signed using my development certificate and my company's enterprise distribution certificate takes about 4 seconds to launch or activate. This is the time taken between tapping the application's icon and seeing the launch image – which obviously does not include the application's initialization code.
It's an awkward 4 seconds in which the application's icon remains dimmed after being tapped and the home screen freezes (can't even scroll right/left).
What's weird is that it takes approximately the same amount of time to re-activate the application from the background (i.e launch the app, wait till it runs, press the home button, and then immediately tap the app's icon again).
Questions are:
I tested this using iOS 8.3 on iPhone 5
An iOS developer certificate is a code-signing certificate, a digital signature that associates you and your digital identity with your applications.
A signing certificate is the first requirement you need in order to be able to sign apps for installation on iOS devices. Specifically, you need a development certificate, which lets an individual install and run an app on a device.
The Ad-Hoc certificate allows you to build your app to run on a predetermined list of devices. There are a couple big caveats though: You need the UDID of every device you want the app to run on. The user needs to install the provisioning profile for the app as well as the device manually.
The Apple Developer Enterprise Program is only for the internal use and distribution of proprietary apps in specific use cases that are not adequately addressed with public apps on the App Store, custom apps through Apple Business Manager or Ad Hoc distribution, or beta testing through TestFlight.
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
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With