Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Entitlements are not valid

Recently, I have upgraded my iPhone SDK OS from version 2.2.1 to 3.0 version. After that, while building my application, I get an error that the provisioning profile has expired. So I created a new provisioning profile.

Then I made the distribution of my application with the provisioning profile. But I get an error in iTunes while synchronising my application into an iPhone device. The error message is "The application 'iGVA' was not installed on the iPhone because the entitlements are not valid."

I checked the code signing Entitlements contains the correct entitlement plist file.

How can this be solved?

like image 655
Sathiya Avatar asked Oct 13 '09 07:10

Sathiya


People also ask

What are entitlements on my Iphone?

Discussion. An entitlement is a right or privilege that grants an executable particular capabilities. For example, an app needs the HomeKit Entitlement — along with explicit user consent — to access a user's home automation network.

How do I add entitlements to a file?

Select iOS > Resource > Property List. Name the new file " foo. entitlements " (typically, " foo " is the target name) Click the (+) next to "Entitlements File" to add a top-level item (the property list editor will use the correct schema due to the file extension)

What are code signing entitlements?

During code signing, the entitlements corresponding to the app's enabled Capabilities/Services are transferred to the app's signature from the provisioning profile Xcode chose to sign the app. The provisioning profile is embedded into the app bundle during the build.

How do I check my der entitlements?

To check whether the app has the DER entitlements, look for the hash list under Page size in the signature. If -5 contains a value and -7 contains a zero value, or is not present, you need to re-sign your app to include the new DER entitlements.


1 Answers

Michael's answer above is spot on (or the link he points to is). Here are the steps I had to take to get it to work:

  • Have an ad-hoc certificate for which the device UDID is checked. Install that cert by dragging it onto the XCode icon.
  • On the project, create a distribution configuration and set your build params to the appropriate device | distribution. Right now, we build for Device 3.0 | Distribution.
  • My project did not include an Entitlements.plist file - I had to add it by selecting from the menu File | Add File | IPhone OS | Entitlements, and call the new file Entitlements.plist
  • The new plist file has only one row - set the value of that row to unchecked.
  • In the project build configuration, in the line for Code Signing Entitlements, enter the Entitlements.plist filename as the value.
  • In the Code Signing Identity, select the ad-hoc certificate identity (though I have found that you can also use your distribution certificate identity)
  • NOW BUILD :)
  • Deliver the resulting app file plus the ad-hoc cert to the person who gave you their UDID. Should work :).
like image 53
mmattke Avatar answered Oct 09 '22 12:10

mmattke