1

I have installed one app using enterprise account distribution certificate via OTA(Over the air) link before 4 months and it is working fine till today. But today surprisingly it is stopped running, even it is not launching. I have verified certificate, Profile and enterprise account and all are perfect. When i connected device with device organizer of xCode, It has printed below log:

Feb 17 10:07:50 iPad amfid[159] <Error>: entitlement 'application-identifier' has value not permitted by provisioning profile 'Mobile Consign ProdDistributionProvisioningProfile'
Feb 17 10:07:50 iPad amfid[159] <Error>: /private/var/mobile/Containers/Bundle/Application/FFC8CCE7-BEFD-4801-B64E-974F3B967171/Consignment Replenishment Production copy.app/Consignment Replenishment Production copy not valid: 0xe8008016: The executable was signed with invalid entitlements.
Feb 17 10:07:50 iPad kernel[0] <Notice>: AMFI: hook..execve() killing pid 452: no code signature
Feb 17 10:07:50 iPad kernel[0] <Notice>: Sandbox: hook..execve() killing pid 452: application requires container but none set
Feb 17 10:07:50 iPad com.apple.xpc.launchd[1] (UIKitApplication:com.XYZ.mobileconsign[0xc119][452]) <Notice>: Service exited due to signal: Killed: 9
Feb 17 10:07:50 iPad assertiond[53] <Warning>: Unable to obtain a task name port right for pid 452: (os/kern) failure (5)
Feb 17 10:07:50 iPad SpringBoard[41] <Warning>: Unable to register for exec notifications: No such process
Feb 17 10:07:50 iPad SpringBoard[41] <Warning>: Unable to obtain a task name port right for pid 452: (os/kern) failure (5)
Feb 17 10:07:50 iPad SpringBoard[41] <Warning>: Unable to obtain a task name port right for <FBApplicationProcess: 0x15e00b00; com.XYZ.mobileconsign; pid: 452>
Feb 17 10:07:50 iPad SpringBoard[41] <Warning>: Unable to get short BSD proc info for 452: No such process
Feb 17 10:07:50 iPad SpringBoard[41] <Warning>: Unable to get proc info for 452: No such process
Feb 17 10:07:50 iPad SpringBoard[41] <Warning>: Unable to register for exec notifications: No such process
  Feb 17 10:07:50 iPad SpringBoard[41] <Warning>: Unable to obtain a task name port right for pid 452: (os/kern) failure (5)
 Feb 17 10:07:50 iPad SpringBoard[41] <Warning>: Unable to obtain a task name port right for <FBApplicationProcess: 0x15e00b00; com.XYZ.mobileconsign; pid: 452>
Feb 17 10:07:50 iPad SpringBoard[41] <Warning>: Unable to get short BSD proc info for 452: No such process
  Feb 17 10:07:50 iPad SpringBoard[41] <Warning>: Unable to get proc info for 452: No such process
  Feb 17 10:07:50 iPad assertiond[53] <Warning>: Could not set priority of <BKNewProcess: 0x14640cc0; com.XYZ.mobileconsign; pid: 452; hostpid: -1> to 1, priority: No such process
  Feb 17 10:07:50 iPad assertiond[53] <Warning>: Could not set priority of <BKNewProcess: 0x14640cc0; com.XYZ.mobileconsign; pid: 452; hostpid: -1> to 0, priority: No such process
  Feb 17 10:07:50 iPad locationd[59] <Notice>: Gesture EnabledForTopCLient: 0, EnabledInDaemonSettings: 0
  Feb 17 10:07:50 iPad SpringBoard[41] <Warning>: Application 'UIKitApplication:com.XYZ.mobileconsign[0xc119]' exited abnormally via signal.

When i uninstall the app and re-install app from URL then the app has started working again. But i have distributed the app to no of users and all are facing this issue right now. So it is important for me to know, why this issue occurs while everything is fine.

Thanks in advance.

Nikh1414
  • 1,238
  • 2
  • 19
  • 35
  • Enterprise Apps expires every 6 months or something, are you sure it didn't just expired? – JP Illanes Feb 17 '15 at 06:20
  • @Raspu: I didn't find any documentation as you said above. Can you please provide me the link or pdf that describes this. It will be very help full for me. Thanks – Nikh1414 Feb 17 '15 at 07:04
  • Take a look at this answer: http://stackoverflow.com/questions/9216485/how-to-manage-enterprise-distribution-certificate-expiration (I am not an expert on the issue, mind you). – JP Illanes Feb 17 '15 at 07:07

1 Answers1

1

I believe the provisioning profile you used to build he app expired. They will expire 12 months from when you create them.

When you build an app, it will package up the provisioning profile you've chosen in Xcode with the .app, and that provisioning profile will be installed on the device when you install the app. So let's say you create an app and the provisioning profile with build 1 was created on 1/1/2014. That app can be installed and used until 1/1/2015. If you don't update the provisioning profile on that device before then, the app will no longer launch.

There are two sure fire ways to update the provisioning profile on the device.

  1. Create a new provisioning profile (for ease later, make sure this new provisioning profile is set up with a wildcard app id, like com.company.*) and rebuild the app (let's say you do this on 10/1/2014). Build 2 of the app will now have the new provisioning profile, which will not expire until 10/1/2015. The users are good until then, as long as they install the new version. Anyone who still is running build 1 will be unable to run the app, UNLESS you do option 2 below.

  2. Build another app with a new provisioning profile (as long as your new provisioning profile is using a wildcard app id). Install that app onto the device. Part of the new app's payload is the new provisioning profile that now won't expire until 10/1/2015. That profile says "I am authorized to run and apps with a bundle id that is like 'com.company.*' until 10/1/2015". So build 1 of the original app will then continue to function. Note, however, that anyone that gets build 1 of the first app will also need to get the new app in order to run the first app. This can be a useful strategy if for some reason you can't re-build app 1 (lost the source code, doesn't compile in current version of Xcode).

Alternatively, you may be able to email a new provisioning profile to the user(s) and have them open it on the device. I haven't tried this one since iOS 6, so it may not work anymore.

wottle
  • 13,095
  • 4
  • 27
  • 68