Determining if an iPhone is Jail broken Programmatically
Here is one of the ways to detect if your app was cracked.
In short: the cracking usually requires changing the Info.plist. Since it's regular file you have access to, it's pretty easy to determine such changes.
Detecting a jailbroken phone is as easy as checking for the presence of /private/var/lib/apt/
folder. Although this doesn't detect Installer-only users, by now most have have installed Cydia, Icy or RockYourPhone (all of which use apt)
To detect pirated users, the easiest way is to check for the presence of a SignerIdentity
key in your app's Info.plist
. Since advanced crackers can easily find the standard [[[NSBundle mainBundle] infoDictionary] objectForKey: @"SignerIdentity"]
checks, it is best to obscure these calls using the Objective C runtime available via #import <objc/runtime.h>
or use alternative equivalents.