Will an app continue to work if my provisioning profile expires? - iphone

I have an app that is loaded onto one of my development phones. The provisioning profile that was used for this app will expire in a couple of days. So, after the provisioning profile expires will the app will cease to function? or does the provisioning profile expiration only affect building and installing the app on the device?

Once the profile expires you will be unable to launch the app. You can go to the Provisioning Portal ( http://developer.apple.com/ ) on the apple site and renew the provisioning license - once an updated provisioning license is installed on the phone the app will function again (i.e you won't need to do a rebuild).

There are reports that if you delete all the expired provisioning profiles from the device, a previously running app installed using one of those expired profiles might still continue to launch on that device, but I haven't had a chance to test this on a recent OS release.
A non-expired profile with an appropriate Developer and app ID on the device (even if not the one used to install the app) may or may not be required.

The app will cease to function. It will launch then exit immediately.

As davbryn says you won't be able to launch the app, except you do not need to go to the provisioning portal as XCode should take care of things automatically these days.

Related

My app stopped opening

i have a free account not a paid dev one
i have not updated my app recently and i was wondering if this is what could have caused it
i check my provisioning profile and it says the newest licence was created TODAY , i didn't run the app thought Xcode today, but if i do, i know it will be all ok, i just want to know why did my app stop working, is there a way i can check for memory leaks etc or could it simply be that the licence doesn't update online but only when running the app thought Xcode (so you get 7 days )
You can check the device console to see if the app is "crashing" due to an expired / invalid provisioning profile. For information around seeing that information in the console, you can get that information here.
If you want to build in provisioning profile checking into your app to see when the app provisioning profile is set to expire within the app itself (or the certificate used to sign the app), you can see that here. Accessing the profile information at runtime is challenging, but can be done.
However, if you just want to confirm that the app is crashing at launch due to the profile, simply check the device console.
Also, free account provisioning profiles will last only 7 days. So you have a week to run the app. But if you build the app when you provisioning profile is 3 days old, that only gives you 4 days from when you build the app to a device.
Also, the having a new provisioning profile in Xcode has no effect on the device. When you run on the device from Xcode (or install an .ipa from a web link), iOS installed the profile on the device. If you don't run from Xcode, your devices provisioning profile will be older than the one in Xcode and the app will not run.

Do I need to rebuild and deploy the build again after expiration of provisioning profile?

My Enterprise application is having more than 1000 users in production. Yesterday my provisioning profile got expired. From yesterday I got many calls of users that they did not able to use their app.
Is there any way so that the existing user don't need to install the new build again. Because its very difficult to tell more than 1000 users to reinstall the app again.
Please help me. The issue is with production.
Unfortunately, you will need to get the new provisioning profile on the devices somehow. The provisioning profile must get on the device, and you can simply provide the new profile by itself, or you can rebuild the app and the profile will be included in the app's payload.
There are a couple of ways to do this, but here are the most popular methods:
If the devices are managed using an MDM product, you can push the new profile out to the devices using the MDM capabilities. Again, you can use the MDM system to push just the provisioning profile, or you can push the new app build with the new provisioning profile. Judging by the fact that you would be requesting users to re-download the app, I don't believe you are using MDM to manage the devices.
If you have older devices (iOS 7 and before), you can have the user manually install the new profile. You can email the provisioning profile to the users, and they will be able to open the profiles on their device. Or you can host the profile on a web server and direct the users to open the link to install the profile. The app will then work with the new, valid profile.
Rebuild the app and re-distribute. When the users download the app (or any other apps built with the profile if you are using a wildcard identifier on your profile), the new profile should replace the other one and the app will be able to launch.
Unfortunately, all of these methods require you to get the new profile downloaded from the developer site onto each of those devices.

ios Provisioning Profile renewal

My Provisioning Profiles for iPhone have just expired and I cannot download anything to my test device for testing anymore. Have tired "Automatic Device Provisioning (Refresh)", the Team Provisioning Profile seemed to have updated in the process. But my profile on a specific software in development cannot be extended similarly. Hope somebody who have experience on this could help ...
Check your device using the Xcode Organizer window. Delete any expired provisions from the device and install the same non-expired provision as specified in your Target build settings for whichever of your your Debug or Release builds you are trying to run.

Testing an Application on device in xcode 4

I am trying to test my iPhone app in XCode 4 and it is telling me that i don't have a valid provisioning profile even though i do. What is wrong?
There are a lot of factors that could cause this. More information is needed. The primary things I would suggest are:
Is your device authorized in the provisioning profile (using the Developer Portal or team provisioning profile)
Have you downloaded the latest profile from the developer portal? And made sure its not expired?
Have you specified the correct provisioning profile in the build settings for your project? If you have had to make changes to the profile or renew it you will have to re-download it AND install it in Xcode AND change your build settings to point to the new one even though it has the same name.

Why not use development provisioning instead of ad hoc?

I was under the impression that when you use a development provisioning profile for a build of an app, only the specified developers can deploy that build to a phone.
But I just deployed a build that uses a development profile to a phone using Xcode Organizer, even though I'm not one of the valid developers for that profile. One of my colleagues, who doesn't even have Xcode installed, did the same with his phone using iTunes.
In that case, why not use a development provisioning profile for distributing your app to e.g. your QA team, instead of ad hoc distribution?
EDIT: Please read the part in bold carefully before answering. I'm not asking a basic "how does this work" question. I've made a lot of development, ad hoc, and app store builds, and now I find that I seem to have made some wrong assumptions.
There's one situation in which you need an Ad Hoc profile, and that's when you want to test Push Notifications.
If you test Push Notifications on a Development Provisioning Profile, your push notifications need to be sent using the Development Push Notification Certificate for your SSL connections to Apple's sandbox APNS server.
If you want to test Push Notifications using your Production Push Notification Certificate and the live APNS servers, you'll have to deploy your app to a device using a Distribution Certificate and Ad Hoc Provisioning Profile (which includes doing the Entitlement.plist steps, which you can ordinarily skip if you were only using Developer Provisioning Profiles).
Also note that when you deploy using an Ad Hoc profile, your device token will be different from the one you use when you're using the development profile. This the recommended way to test APN because there's no back end changes that need to be made between the Ad Hoc build and the final live deployment on the AppStore.
Ad-Hoc is not for developers, but for testers. Who do not have iPhone SDK / XCode, iTunes only.
(The answer is: you can install ad-hoc app without developer certificate, and can't do it with development app)
Method 1: Install from XCode
The Development Provisioning Profile requires you to run the app (initially) from within XCode.
This has the side-effect of marking the device as being used for development, but also requires you to connect the iPhone/iPod Touch to the machine running XCode. Once you run the app from XCode, the app is installed on the device and you no longer need to be connected to the machine to run it. (Until you want to update the app.)
Method 2: Install from iTunes
An Ad-Hoc provisioning profile allows you to give the app to anyone and let them install it themselves using iTunes. You send them:
the app, and
the Ad-Hoc Provisioning Profile
They select these two and drag them onto iTunes. Then sync.
Later, you can give them an updated version of the app only (without the Ad-Hoc Provisioning Profile, since they've already installed that on their device) and they can drag the new app onto the iTunes icon to install the new version.
One limitation to Ad-Hoc distribution, is that it requires you to enter each Device ID into the iPhone Development Portal. And there is a limit to 100 device IDs per year (you cannot erase any IDs, until your next year begins -- only add them). The 100-ID limit will not be a hindrance for most developers, just keep in mind that you need to get the device ID ahead of time, before you create the Ad-Hoc Provisioning Profile to send to the person you want to install your app.