In this document,In the section, "In-house apps | Providing updated apps", it states:
For users who already have the app, you may want to time your next released version so that it includes the new provisioning profile. If not, you can distribute just the new .mobileprovision file so users won’t have to install the app again. The new provisioning profile will override the one that’s already in the app archive.
We tried this last week when our own in-house provisioning profiles all expired (to correspond with an expired enterprise certificate). Despite installing the new profiles (and leaving the expired profiles on the device), we found that our applications would not launch. The device refused to open the applications even after a hard reset (press and hold the lock and home buttons for a long time).
Eventually, I had to advise our team to install updates of the affected applications, all of which had deployed with the renewed provisioning profile. The newly installed apps successfully replaced the ones that didn't open, which to me is a proof that the new provisioning profile included the same bundle ID.
To conclude, I feel like the device refused a replacement profile for my applications, and I don't know why. My questions are:
Under what conditions will the device accept a replacement provisioning profile?
Is there any way to test that the replacement will be successful before the provisioning profile actually expires?
Is there any restriction about whether the user must install the new provisioning profile before, or after, the old profile expires?