Note: This is much more complex than just download a hack and you get gems, but it works if you make sure everything is set up properly. Its up to the user to make sure Charles is set up properly and connected, but I'll provide a basic guide. Sorry about the image sizes, my monitor is 4k so screen captures are huge. I put them all in Spoiler tags.
Requirements:
-Charles Proxy
Hack Features:
-Extra gems when collecting them. All those tiny little 2-4 gem rewards from quests can give you as many as you want (I personally made them all give me 9000).
Warning:
-Adding too many may get you banned.
Instructions:
1) Make sure you have your iDevice connected to Charles over LAN. To do this, start running Charles, and go to the wifi settings on your iDevice. Tap the (i) button next to your connection's SSID. Under Proxy Settings, you will use the LAN address of your PC running Charles and the Port it is running on (default is 8888). In my example here, my local PC is on 192.168.1.114. If you aren't sure, open cmd and run ipconfig to find your LAN address.
To be extra safe, I turn on airplane mode, and forget any other networks, to ensure that my connection is definitely going through the proxy and it doesn't drop out and connect to a cell tower half way through or anything.
2) Make sure Charles has SSL proxying enabled for all domains (or at least the one shown in step 4, but I just use * for all domains since I use Charles for lots of games)
3) Install Charles SSL certificate on your iDevice (browse to Charles Web Debugging Proxy SSL CA Certificate installation in Safari and install the crt). This only has to be installed once.
4) Turn on Breakpoints and set a breakpoint with these settings: (you can technically leave all of this blank except for Path, but fill it all in to be safe, as sometimes Charles can be buggy)
protocol: https://
host: 9cf0.playfabapi.com
Port: 443
Path: /Client/AddUserVirtualCurrency
Request
If for some reason they decide to change the host/path in an update, turn on recording and look for where the AddUserVirtualCurrency request starts going to, or use a wildcard, but these settings work with it for this version.
5) In the game, play until you collect gems from any source.
The game should stop responding temporarily while it waits for a response: look at Charles, a Breakpoint should show up. Go to JSON Text, and edit the value of Amount to whatever amount of gems you want. I've used 9000 several times and I haven't been banned yet, although doing it a lot or adding too many may get you banned. After putting in the new value, hit execute.
6) Your gem balance in game should now add whatever value you set that to. If you take too long, and it doesn't add the gems, try reloading the app or play until you get gems a second time. Every time you get gems, it will pause and give you a chance to edit how many gems you receive in Charles.
7) Be careful not to overdo it, as when the game loads, it checks if you are banned, so they can disable your account. You could probably get around this by changing it back to false, but I haven't been banned so I haven't tried.
8) Repeat as much as you want. When you're done, close Charles, and turn off Proxying in wifi settings.
**For advanced users, you can enable rewrite on the request, and have it automatically change the value for you every time, but you'll have to know regex, and breakpoints let you know when the request is actually happening, so its a bit safer and easier to debug.
If it doesn't work, I can almost guarantee your issue is with making sure your iDevice is properly connected to Charles, so make sure your firewall settings aren't blocking anything, etc. Google around for troubleshooting Charles if you have issues with connectability. Turn on recording and make sure Charles is actually getting the requests if you have issues.
Also note that while connected to Charles, in-app purchases will not work, and any game trying to load their pricing data may hang. In this game, you can safely go to the in-app page and they will just show "offline", but in many it will cause them to freeze.