Задумался вопросом — а каким образом некоторые iOS-приложения обнаруживают, что в системе произведен Jailbreak? Мало того, что некоторые приложения, вроде Skype просто показывают предупреждающее сообщение об этом, так некоторые вообще отказываются работать (к примеру, DirectTV). Почему отказываются? Думаю, тут все понятно — разработчики просто не хотят брать на себя бремя технической поддержки, ломая голову над тем, почему у пользователя глючно работает их вроде бы тщательно протестированная программа. Сам-то пользователь редко скажет, что у него сделан Jailbreak, а если и скажет, то разработчики вправе отказаться от предоставления в помощи, т.к. нет смысла поддерживать такие окружения, в которых любой сторонний мод может привести к нестабильному поведению не только отдельно взятого приложения, но и всей системы.
Вернемся же к вопросу — как обнаружить, что был Jailbreak? Обычно вместе с Jailbreak ставятся дополнительные утилиты и приложения, вроде таких как Cydia, MobileSubstrate и WinterBoard. Таким образом, с помощью несложного условия if — else можно в своем приложении написать участок кода, который будет детектить Jailbreak. Вот так и решается этот, на первый взгляд, сложный вопрос довольно примитивным методом.