I'm leaning towards a partially-featured free version that works for all time, but I'm willing to be convinced otherwise.
Some alternatives:
- secret key file
- some kind of hashing/crypto. Something like a hash of <email>:<version1>:<yoursecrethash> and check against the customers keyfile. Advantage: the file doesn't need to be secret, customer will have to sign up and get a keyfile by mail. (Of course those who want to hack will just find and nop out the relevant assembly instructions)
- check online for valid license (can be also be patched out easily unless you really put some effort into it)
- of course there is hardware keys which again can be easily circumvented unless you put some effort into the implementation
I'm leaning towards a partially-featured free version that works for all time, but I'm willing to be convinced otherwise.
Disadvantages on time limited:
People will find a way to reset all settings, reinstall and use it for another 14 days.
Disadvantages on feature limited:
Those who only need the limited feature set has it forever - those who need the extended features won't get a chance to test them.
I'm leaning towards full featured, time limited. Those who want to hack it will havk it anyway.
This won't stop someone buying your app, cracking and releasing it, but it means they will have to spend at least $30 to do so.
[0]: https://keygen.sh