hey, guys! I have a problem, I started doing ios cheating, and I don't have a jailbroken device, and I decided to do a non jailbroken cheat, which I noticed is static members, as I understood, hooks are not needed here, and I was told that it works on non jailbreaked, and I tried, I get that's how SomeClass_TypeInfo_c -> access static_fields _offset -> field offset, I get dyld of unityframework, and I'm offseting to typeinfo, and I can offseting to access static field, but then when offseting the pointer from access static field to static field, I crash, and it's not a problem that I have a non jailbreak. since typeinfo and access to static fields, when nslog is output, pointers are displayed, and something seems to be read in memory, but it crashes when I get the fields already, here is my code, help 
 
#import <Metal/Metal.h>
#import <MetalKit/MetalKit.h>
#import <Foundation/Foundation.h>
#import <mach-o/dyld.h>
#import <pthread/pthread.h>
#import <substrate.h>
uint64_t getRealOffset(uint64_t offset) {
    uint32_t c = _dyld_image_count();
    for (int i = 0; i < c; i++) {
        if (strstr(_dyld_get_image_name(i), "UnityFramework")) {
            return _dyld_get_image_vmaddr_slide(i) + offset;
        }
    }
    return 0;
}
void *modifyGameVarDefs(void *arg){
	while(true){
		if (true) {
			auto typeinfo = getRealOffset(0x37EB940);
			auto staticfields = *(uint64_t*)((uint64_t)typeinfo + 0xB8)
			NSLog(@"animspeed %lu", typeinfo);
			if(typeinfo) {
				float animspeed = *(float*)((uint64_t)staticfields + 0x0);
				NSLog(@"animspeed %f", animspeed);
			}
		}
		sleep(1);
	}
	return NULL;
}
__attribute__((constructor))
void hackthread() {
    pthread_t thread;
    pthread_create(&thread, NULL, modifyGameVarDefs, NULL);
}