ArticlesBeta TestingiOS apps

iOS apps are well known for their extremely high quality in terms of performance and user experience. Reaching this level of quality needs a lot of testing, but how much is enough? What are the steps to take? How much time will it cost?

We dove into the Apple developer documentation to let them answer this question for you. Here’s what you need to do before starting to test your iOS apps (tldr: skip ahead!):


You should plan for rigorously testing the app on a variety of devices and iOS versions. It’s not sufficient to test the app using only iOS Simulator and a device provisioned for development. A simulator doesn’t run all threads that run on devices, and launching apps on devices using Xcode disables some of the watchdog timers. At a minimum, test the app on all the devices you have available. Ideally, test the app on all the devices and iOS versions you intend to support. For example, if you have a game that’s intended to run only on iPhone and iPod touch, test it on those devices and not on iPad.

To test your app on a variety of devices and iOS versions, create a special distribution provisioning profile, called an ad hoc provisioning profile, and send it, along with the app, to testers. An ad hoc provisioning profile doesn’t require that testers be enrolled in an Apple Developer Program, be added to your team, create signing certificates, or use Xcode to run your app. Instead, app testers simply install the app and the ad hoc provisioning profile on their device to launch the app. You can then collect and analyze crash reports or logs from these testers to resolve problems before you ship your app.

Testing your app consists of these tasks:

  1. Configure your app for distribution.
  2. Test your app locally.
  3. Register all the testing unit device IDs.
  4. Create an ad hoc provisioning profile.
  5. Create an iOS App Store Package.
  6. Install the ad hoc provisioning profile and app on test devices.
  7. Send crash reports to developers.


And that’s just where to start. Pretty hectic and consumes a lot of time and effort.


This is where Instabug comes to play. The service that we offer is based on personal frustration from all of these steps needed to start iOS application testing. All developers need to do is integrate our SDK with just one line of code to load the superpowers of our in-app feedback services. Your testers deliver feedback to you just by shaking the device, writing a comment, and attaching a screenshot of the app that can be annotated for further illustration.

iOS developers can log on to our organized dashboard to review all of the feedback received from any number of testers. Every piece of feedback displays the user’s comment, screenshot, and a hell lot of useful information about the app and device itself at the moment of sending to make it easy for developers to trace bugs and understand the possible vulnerabilities of their apps. Some of the data provided include: memory, storage, device type, device iOS version, app version, location, carrier, WiFi, and even the console log.

We also have smart filters that sort feedback according to certain criteria, for example all iPhone 5 (CDMA) phones with iOS version 6.2.1.

These superpowers are just one line of code away. Integrate our SDK now to make use of it while it’s still free!