Long story short, I've an app that for seeing a certain result it may take let's say an average of 5 or 6 weeks, maybe even more, when it's achieved I've to check some things so to make sure that the user hasn't modified things from any of the app related files, so he gets the result, although it's possible to do that also during the whole time.
"Punishment" needs to be that the user loses everything done in that particular aspect. Even though they have been caught as cheaters I expect a good amount of cheating users to enter rage mode because of this and maybe even uninstalling my app.
If I give "punishment" before I think there may be some security issues with people, as cheaters would be more likely to start again this time checking how to cheat, bypassing my protection.
When would it be good to give the "punishment"? Or maybe am I overthinking the quantity of people that would do that? If at the end I don't include the "punishment", I would say the difficulty for cheating would be medium. I don't really expect people without computer science studies to be able to cheat even if they wished to without a reference to do so, but for people with those studies I guess it would be a middle effort.