1

Is it possible to assign different identifiers to copies of an app downloaded from the app store that is hard coded into the application? Or is their anyway of permanently storing an identifier in the application bundle such that when it is copied, the key remains within the bundle?

EDIT: Ok, how about iTunes reciepts, can they be used to verify when it was downloaded as the user has to register their app with the server within say 5 hours of them downloading it.

thanks in advance

user239754
  • 45
  • 5
  • Are you trying to identify pirated copies and disable functionality based on a unique ID? – Frank Schmitt Jan 05 '10 at 01:14
  • Yeah, i want to tie an applicaton ID to a device ID on my server so that not more than one iPhone can run the same copy of the app. Alternatively, i just want some sort of a detection method to send the device ID quietly to the server so it can be ignored. – user239754 Jan 05 '10 at 01:45

2 Answers2

3

I'm assuming your goal here is to disable part of the functionality of your app by having a master list of bogus serial numbers somewhere. Unfortunately there is no per-copy serial number available, and if there were it would be the first thing the bad guys would change before posting your app for download.

Instead you'll need to detect whether your app bundle has been tampered with from within the app. See this question:

Reducing piracy of iPhone applications

You'll then need to decide how subtly or obviously you want to limit functionality. Probably the best solution would be to do something innocuous but slightly annoying that generates a specific kind of support request, at which point you can gently prod the deadbeat into considering buying a legit copy.

An approach with more false positives but potentially fewer false negatives would be to check if the app is running on a jailbroken device. The downside there is that jailbreakers may well have legitimately purchased your app, so you're alienating honest customers for little to no extra benefit.

For the app I'm working on, which has a big social/viral aspect (I hope), I've decided that potential deadbeats probably have enough honest friends to pay for the server cycles that they're stealing, and it's just not worth worrying about.

Community
  • 1
  • 1
Frank Schmitt
  • 25,648
  • 10
  • 58
  • 70
  • thanks! It is just that I am hoping to have a 'global' competition run by a webservice, and obviously it wouldnt then be fair on those that paid that other cheapskates are in it as well. Have you heard about AntiCrack - im not sure of getting it, some people say its a scam and others say it works to a degree, any thoughts? Thanks again – user239754 Jan 05 '10 at 01:38
1

No, there's no way to do either of these. The closest you could come would be to store device IDs on a central server.

Ben Gottlieb
  • 85,404
  • 22
  • 176
  • 172
  • thanks, just the problem with that if the application is pirated then and downloaded, the device IDs wont tell you anything about whether it was pirated. – user239754 Jan 05 '10 at 01:13