Насколько я знаю, iSimulate не использует никаких хаков. Это код, который запускается в вашем приложении на симуляторе и обменивается данными с устройством по сети. Когда он получает сообщения от устройства (касания, GPS, ускорение), он имитирует эти события, вызывая код вашего приложения, как если бы система их инициировала.
Например, для получения обновлений GPS-местоположения необходимо создать экземпляр CLLocationManager, а затем настроить один из ваших классов в качестве его делегата. Ну, на iPhone Simulator вы можете вместо этого запустить код, который вместо этого отправляет поддельные сообщения вашему делегату. Если вы просто вызываете метод делегата следующим образом:
[delegate locationManager:nil didUpdateToLocation:newLocation fromLocation:oldLocation];
Ваш код не должен знать, что обновление местоположения является поддельным. Если вы хотите стать модным, вы можете создать новый класс, который реализует все открытые методы CLLocationManager, но вместо этого отправляет поддельные сообщения. (Поскольку Objective-C динамически типизирован, он не должен быть подклассом, если он отвечает на все отправленные вами сообщения.)
В качестве примечания вы можете использовать эти макросы компилятора, чтобы оставить код только для симулятора:
#if TARGET_IPHONE_SIMULATOR
locationManager = (id)[[MyFakeLocationManager alloc] init];
#else
locationManager = [[CLLocationManager alloc] init];
#endif