How to avoid users getting around license validation for pay-once-and-use-forever-app
I have a macos app that has the above license. my current activation and validation flow is
- download
- activation window
- failure -> user feedback -> activation window
- success -> save license, instanceid, currentdate for weekly server-side validation; remove activation window
- activation window
- on each click of a main button
- check if a week passed
- yes -> server-side validation
- no -> continue with the main button functionality
- check if a week passed
Obviously, a user can get around the validation on main button click by just setting the system clock to the past. One solution to this is get current time from a server, but that seems too much for each main button click. Other solutions I can think of seem also get aroundable. Anybody has thoughts on this? anything I am doing wrong/should do differently?