Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Does anybody know a way to add entitlement to iOS application for non jailbroken device?

Tags:

Some background

  • iOS operation system has a "entitlement" notion . Generally speaking, it's a permission which is granted to an application. Other system services and apps can check for this permission to allow/deny execution of some functionality.

  • These entitlements should be specified in a provisioning profile.

  • System applications have a lot of different entitlements.

  • User application are limited to just couple of entitlements (like access to iCloud or something like that which can be configured on developer portal).

The question is: Does anybody know a way to add entitlements to user application for NON jailbroken device?

The overall idea is to add entitlements to developed app to gain more permissions to use system services.

Notes & Disclaimers

  • I know how to do this for jailbroken phone. However, it doesn't work on non jailbroken device.

  • I am aware that Apple will reject it. It won't go to AppStore.

  • The solution doesn't have to be a compile time solution (meaning, a way to modify a file). It could be a runtime solution - one application adding somehow entitlements to itself or to 3rd party app.

like image 262
Victor Ronin Avatar asked May 07 '13 22:05

Victor Ronin


People also ask

How do I create an Entitlements 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)

How do iOS entitlements work?

An app stores its entitlements as key-value pairs embedded in the code signature of its binary executable. You configure entitlements for your app by declaring capabilities for a target in Xcode. Xcode records capabilities that you add in a property list file with the . entitlements extension.


1 Answers

No. Entitlements are contained within the application’s code signature. Changing them will, of course, break the signature, and stock iOS devices will not run code with a broken code signature. What you ask is not possible.

like image 51
clarkcox3 Avatar answered Oct 20 '22 13:10

clarkcox3