iOSアプリ開発で不正利用防止の為、JailBreakを検知したいことがあると思います。
JailBreakを検知するには下記の3点をチェックすればほぼ間違いなく検知できるでしょう。
・Cydia.appがインストールされているか
・カスタムURLスキーム「cydia://」が開けるか
・「/bin/bash」パスが存在するか
これらをチェックしてbooleanで返却するメソッドを作ってやれば良いです。
- (BOOL)isJailBroken
{
#if TARGET_IPHONE_SIMULATOR
//iPhoneシミュレータの場合は問答無用でNOを返却
return NO;
#endif
//Cydia.appが存在するか?
BOOL isJailbroken = [[NSFileManager defaultManager] fileExistsAtPath:@"/Applications/Cydia.app"];
if (!isJailbroken) {
//cydia: URLスキームが開けるか?
isJailbroken = [[UIApplication sharedApplication] canOpenURL:[NSURL URLWithString:@"cydia://"]];
}
if (!isJailbroken) {
// /bin/bashパスが存在するか?
isJailbroken = [[NSFileManager defaultManager] fileExistsAtPath:@"/bin/bash"];
}
return isJailbroken;
}
**追記
ryochinさんより情報提供(コメント欄参照)
Crackifyの方が厳密なチェックが行えそうです。
プライベート領域にファイル作成・書き込みを試行したり色々してるみたいです。