thii / DTTJailbreakDetection

A jailbreak detection library for iOS
MIT License
285 stars 54 forks source link

DTTJailbreakDetection

Version License Platform Carthage compatible

TL;DR

A library to detect if an iOS device is jailbroken or not.

The good

Checking whether a device is jailbroken or not can have many advantages for your application. As we have already seen, an attacker can run tools like Cycript, GDB, Snoop-it etc to perform runtime analysis and steal sensitive data from within your application. If you are really looking to add an extra layer of security for your application, you should not allow your application to be run on a jailbroken device. [Prateek Gianchandani]

The bad

Please note that millions of users jailbreak their devices and hence not allowing an application to be run on a jailbroken device could have a significant impact on your user base. Another thing you can do is instead block some of the features in your application rather than disabing it entirely. [Prateek Gianchandani]

Installation

The easiest way to install DTTJailbreakDetection is to use CocoaPods. Just add the following line to your Podfile:

pod 'DTTJailbreakDetection'

Usage

To start using DTTJailbreakDetection:

#import <DTTJailbreakDetection/DTTJailbreakDetection.h>

Example

iOS 7 or older

if ([DTTJailbreakDetection isJailbroken]) {
    UIAlertView * alert =[[UIAlertView alloc ] initWithTitle:@"System Requirements"
                                                     message:@"This app is only supported on unmodified versions of iOS."
                                                    delegate:self
                                           cancelButtonTitle:@"OK"
                                           otherButtonTitles:nil];
    [alert show];
    // End your app
}

iOS 8 or newer

if ([DTTJailbreakDetection isJailbroken]) {
    UIAlertController *alertController = [UIAlertController alertControllerWithTitle:@"System Requirements"
                                                                             message:@"This app is only supported on unmodified versions of iOS."
                                                                      preferredStyle:UIAlertControllerStyleAlert];
    UIAlertAction *cancelAction = [UIAlertAction actionWithTitle:@"OK"
                                                           style:UIAlertActionStyleDefault
                                                         handler:^(UIAlertAction *action) {
        // End your app
    }];
    [alertController addAction:cancelAction];
    [self presentViewController:alertController animated:YES completion:nil];
}

License

MIT