views:

288

answers:

5

Is there a way for the developer of an App Store application to tie a sale to an individual user/device ID/Apple account? In other words, a method for the developer to double-check that a specific user has legally purchased the software?

I haven't been able to find a reliable answer to this yet. I'm not looking for specific code examples, just some sort of idea as to how possible (or difficult) this is.

My intent isn't to penalize piracy; it's to be able to provide additional benefits to paid customers. As such, I'm not looking for a way to identify a cracked or pirated version, which I gather has already been solved.

Thanks in advance for any help you can provide!

A: 

To quote "Dr. Touch"...

AntiCrack contains proven technology to mitigate the risk of your apps getting pirated by automatic cracking tools

slf
That legit? Looks nice if it is.
Squeegy
like any tool or framework.... the standard "YMMV" applies
slf
I'm not actually trying to prevent piracy, or identify if a copy was pirated; I'm trying to identify a specific purchaser from another specific purchaser. For instance, being able to compare the device ID on a phone with the device ID on a sales receipt, or submitting a user's device ID/Apple Store ID to Apple for purchase verification.Ideally, I'd like to use a method that's independent of device ID, so that if someone replaces their iPhone/iPod it doesn't consider them a brand new purchase; I can link them up with their previous installation/information.
Keldi
A: 

You do not have access to any purchaser information from the Apple store. Apple considers these customers THEIR customers, not YOUR customers and so will not make any customer identification information available to you...

-t

Tim
A: 

You may want to read my Stack Overflow question on this subject: Reducing Piracy of iPhone Applications.

Alex Reynolds
A: 

None of the answers were all the way there, so I'll summarize.

First, as per Tim's answer, Apple does not give you any information to identify customers of a standard app purchase, or to identify one specific sale from another.

However, using In-App purchases provides you with a method to identify a valid purchaser, directly from Apple. The information you receive in this manner is uniquely identifiable; it doesn't give you a user's device ID and/or Apple Store account, but it can be used to verify a specific transaction.

Apple's documentation on verifying store receipts.

Keldi
A: 

You can roll your own system to do this. You're not permitted to look into Apple's information elsewhere on the phone, but you can let your users create an ID in your system, through your application's interface. Gather the information voluntarily from your customer at the time you have them create their Profile on your system. You can get the Device ID, but you may want to collect something like an email address, too, so that you can continue to provide them with consistent service, as they upgrade to a new iPhone, or add an iPad to their fleet of Cocoa Touch devices.

Be sure to use an encrypted http connection when you're talking to your server, so that you don't accidentally expose your customer's information.

Gary W. Longsine