Please note that there are differences between the simulator and the device. The simulator does not run the exact same SDK as the device. The lower layers are from the Mac SDK actually, which makes sense since it's executed on a mac.
However, it seems there is a fix for your specific problem. You should definitely try the fix Jeff Lamarche describes in this post: Device vs. Simulator
Replace
#import <objc/objc-runtime.h>
By
#import <objc/runtime.h>
#import <objc/message.h>
Then to get rid of the warning, you add these two lines in the header file of the involved class :
#if (TARGET_OS_IPHONE)
- (NSString *)className;
+ (NSString *)className;
#endif
And then in the implementation file :
#if (TARGET_OS_IPHONE)
- (NSString *)className {
return [NSString stringWithUTF8String:class_getName([self class])];
}
+ (NSString *)className {
return [NSString stringWithUTF8String:class_getName(self)];
}
#endif