My iOS app is going to be free, but with additional functionality enabled via in app purchase. Currently beta testers are doing a great job finding bugs and I want to reward them for their hard work. I think the least I can do is give them a full version of the app so that they don't have to buy the functionality themselves. However, I'm not sure what the best way to do this is.
There do not appear to be promo codes for in app purchase so I can't just email out promo codes.
I have all the tester device UDIDs so when the app launches I could grab the device UDID and compare it to an internal list of 'approved' UDIDs. Is this what other developers do?
My concerns:
- The in app purchase content would not be tied to their iTunes account, so if beta testers move to a new device they would not be able to enable the content unless I released a new build in the app store with their new UDID. So they may have to buy it eventually anyway.
- Having an internal list leaves a hole for hackers to modify the list and add themselves to it.
What would you do?
Just ship with a plist containing the UDIDs that you want to enable the feature for and do the check at startup. You can even put an alert up once that says, "Thanks for being a beta tester blah blah." Since app binaries are signed no one can add their own UDID to the list after you ship (which deals nicely with the hacker problem).
As to users switching devices, I wouldn't worry about it. beta testing something usually doesn't imply that you get a pass forever.