I'm trying to put anti-piracy code in my app. The previous answer to this (which I can't link to because of my member status - sucks) can be easily countered, since the "SignerIdentity" string can be looked for and replaced in the binary using a hex editor.
Instead, checking the fileSize of the info.plist file and comparing it to a reference value sounds more solid (since the info.plist is getting modified here and there when cracking the app). How would I do that? I tried the following but it logs 0.
NSBundle *bundle = [NSBundle mainBundle];
NSDictionary *mainDictionary = [bundle infoDictionary];
NSLog(@"%d", [mainDictionary fileSize]);
You might prevent the noobish crackers from finding references to "SignerIdentity" in your code by applying ROT13 or a similar simple obscuring algorithm http://en.wikipedia.org/wiki/ROT13
After applying ROT13, "SignerIdentity" would become "FvtareVqragvgl".
Anyway, the answer to your question (how you get the size of the Info.plist file):
Also keep in mind that the size (in bytes) of the
Info.plist
in your Xcode project directory and theInfo.plist
inside the bundle may differ. You probably want to build the game once, then look at the size of<your app bundle.app>/Info.plist
and then update your antipiracy code.