The official iOS development environment only supports the implementation of end-user applications with a GUI [9]. They are implemented in Objective-C programming language, using a set of predefined software frameworks that are mostly shared with OSX. In iOS, applications run in a sandbox, that is, they can not access the address space of other processes (applications or system services) and can only access to specific directories of the filesystem. In addition, iOS design is focused on providing end-users with as much performance as possible from their devices. In order to achieve that goal, certain limitations to third-party applications have been established. For example, memory management can not be done through a garbage collector, so as to prevent the implicitly required runtime overhead. Moreover, applications have strict limitations in their life- cycles. For example, they can only run in the background for 10 minutes and they can be killed at any time, while in background, if global memory or CPU use is excessive, or if those resources are demanded by the foreground application. This way, the foreground application, most of the time, is not negatively influenced by background tasks. Finally, to increase the security of the platform and avoid malicious software, the only way to distribute applications is by the iOS App Store. Developers have to follow certain guidelines in order to have their applications accepted3 . Mainly, the submitted applications can not use some private APIs (i.e., undocumented APIs that allow access to certain low-level aspects of the platform) and the description should match their real functionality.