2013-12-23 1 views
1

Если я хочу, чтобы приложение запускало команду, чтобы проверить, не повреждено ли устройство, как мне это сделать?Обнаружение джейлбрейка

(Это команда, которую я хочу выполнить, если программа может определить, установлена ​​Cydia)

UIAlertView *jailbreakDetection = [[UIAlertView alloc] 
            initWithTitle:@"Jailbreak Detected" 
            message:@"This application will not run while a jailbreak is installed." 
            delegate:nil 
            cancelButtonTitle:nil 
            otherButtonTitles:nil]; 

[jailbreakDetection show]; 

Показав это предупреждение, пользователь не может запустить приложение, поскольку нет никакого способа, чтобы остановить сообщение от показа на экране. Я рассмотрел некоторые подобные вопросы, но ни один из них не работал для меня, например, когда я запускал этот код, у меня была ошибка «Ожидаемый идентификатор» или «(« ». Я запускаю его в файле NavigationController.m , так что я ударю пользователя на первоначальном запуске приложения.

NSString *filePath = @"/Applications/Cydia.app"; 

if ([[NSFileManager defaultManager] fileExistsAtPath:filePath]) 
{ 
UIAlertView *jailbreakDetection = [[UIAlertView alloc] 
            initWithTitle:@"Jailbreak Detected" 
            message:@"This application will not run while a jailbreak is installed." 
            delegate:nil 
            cancelButtonTitle:nil 
            otherButtonTitles:nil]; 

[jailbreakDetection show]; 
} 

что я делаю неправильно с этим? Должен ли я быть размещая это в отдельном файле?

+0

Не могли бы вы просто проверить, можете ли вы сделать что-то как root. – Justin

+1

* «Ожидаемый идентификатор или« («» * - ошибка компилятора, поэтому вы должны получить это при создании своего приложения, а не при его запуске. Но на самом деле ваш код, похоже, компилируется нормально. Где именно вы получаете сообщение об ошибке? –

+2

Следует отметить, что джейлбрейкинг - это не то же самое, что пиратство. Запрет на всех пользователей, взломанных на джейлбрейк, скорее всего, будет иметь неприятные последствия для вас. – coneybeare

ответ

3

Ваш код не компилируется, потому что это не является частью метода или функции. Вы должны перенести этот код, например, на viewDidLoad.

(Этот ответ относится только к ошибка компилятора, а не возможные механизмы обнаружения джейлбрейка.)

0

Как мне кажется, я неправильно разместил «}» и не включил оператор в параметры ViewDidLoad.

После редактирования программы он отлично работает.