The iOS Simulator’s Limitations - dummies

By Neal Goldstein, Dave Wilson

Keep in mind that, despite the iOS Simulator’s many virtues, running apps in the Simulator is still not the same thing as running them on the iPad. Here’s why:

  • Different frameworks: The Simulator uses Mac OS X versions of the low-level system frameworks, instead of the actual frameworks that run on the device. That means that occasionally some code may run fine in the Simulator but not on actual iOS devices.

    Although the Simulator is useful for testing functionality, there’s no substitute for debugging the app on the device itself if you want to find out how it will really run.

  • Different hardware and memory: The Simulator uses the Mac hardware and memory. To accurately determine how your app will perform on an honest-to-goodness iOS device, you have to run it on a real iOS devices.

  • Different installation procedure: Xcode installs your app in the Simulator automatically when you build the app using the iOS SDK. It’s a different kettle of fish to install your app on the device for testing. And, by the way, you don’t have a way to get Xcode to install apps from the App Store in the Simulator.

  • Lack of GPS: You can’t fake the Simulator into thinking that it’s lying on the beach at Waikiki.

    You can, however, choose to simulate a location in the Debug area.

  • Two-finger limit: You can simulate a maximum of two fingers. If your application’s user interface can respond to touch events involving more than two fingers, you need to test that on an actual device. (The motion of two fingers in itself is a tad limited in the Simulator — you can’t do two-figure swipes or drags.)

  • Accelerometer differences: You can access your computer’s accelerometer (if it has one) through the UIKit framework. Its reading, however, will differ from the accelerometer readings on an actual iPad.

  • Differences in rendering: OpenGL ES (Open Graphics Library for Embedded Systems, in other words) is one of the many 3D graphics libraries that works with the iOS SDK. It turns out that the renderers it uses on devices are slightly different from the ones it uses in the iPad Simulator.

    As a result, a scene on the Simulator and the same scene on a device may not be identical at the pixel level.

  • Telephony: You can’t make a phone call on the iPhone simulator.