Yeah, the simple fact is that every client side safety measure will ultimately be broken.
The only real ways to protect against deceptive players is to handle your sensitive data on a server. For instance, if a user makes a purchase, then you need to validate the receipt on your server and add the currency to the user’s account, again, on your server.
Essentially, you can never trust the client. Your users have physical access to your app and they can do all sorts of memory editing, reverse engineering, patching, sending fake messages to your server, etc. and there is no way to protect yourself from all of that at the client level.
Finally, unless your game is making serious money, then it will almost certainly take you more time and cost you more money to implement these server side security measures than it will be worth. Especially if your game is singleplayer. The fact is that most people who use memory editors or play hacked games wouldn’t pay for your games even if those cheats and hacked versions weren’t available. If your game doesn’t have multiplayer, then these individuals won’t be bothering the rest of your playerbase either.