I am interested in making a trial version of an application I am distributing via the Mac App Store. What is the most secure manner of doing so? Simply writing the first run date into user defaults seems a little easy to circumvent.
Share
Sign Up to our social questions and Answers Engine to ask questions, answer people’s questions, and connect with other people.
Login to our social questions & Answers Engine to ask questions answer people’s questions & connect with other people.
Lost your password? Please enter your email address. You will receive a link and will create a new password via email.
Please briefly explain why you feel this question should be reported.
Please briefly explain why you feel this answer should be reported.
Please briefly explain why you feel this user should be reported.
It’s better to make trial versions be feature-limited rather than time-limited – features you can just actually leave out of your trial version’s code, whereas you can’t leave out “the rest of time eternal”. You can try to artificially make your app stop working after a period of time, but rest assured that someone who wants to will find a way to bypass that restriction.
If you’re dead-set on making it time-trial based, though, store a timestamp somewhere obscure in a non-obvious (e.g. basic encryption) format, and check against it. Yes, it’ll get circumvented by someone determined, but it’s not worth your time to try to prevent that.
Just do something that’s “good enough” to encourage the mostly-honest users to pay for the app, and ignore the hardcore reverse engineers; they’re a tiny segment of the market who probably wouldn’t pay for your app no matter what you did (except possibly, they might pay for it if you didn’t lock it down in the first place, as a matter of principle – some of them are fickle like that).