鉴别你的用户使用的是“伪正版”或“越狱”版本

大家一定碰到过,一些无良的第三方市场,无耻地用正版的名义盗版你的APP(作者曾经天真的以为他们只是发布itunes的链接),在天朝这个神奇的土地上,还没办法制裁他们,真是让人头疼。

前面也就是发发牢骚,反过来说他们也带来了一定的用户量(虽然忠诚度不好说),接下去要告诉你的就是鉴别的方法。

 

以下这段代码是用来鉴别是否是越狱用户的,由于越狱用户可以打破沙盒机制,所以你的APP可以直接访问到用户机器中的系统文件。

 

+ (BOOL)isJailbroken

{
    /* Cydia.app */
    NSString *cydiaPath = @"/Applications/Cydia.app";
    if ([[NSFileManager defaultManager] fileExistsAtPath:cydiaPath]) {
        return YES;
    }
    
    /* apt */
    NSString *aptPath = @"/private/var/lib/apt/";
    if ([[NSFileManager defaultManager] fileExistsAtPath:aptPath]) {
        return YES;
    }
    return NO;
}

 

 

下面这段是用来检测是否是“伪正版”的,“伪正版”的原理是使用企业级证书顶替掉你的个人证书,而企业级证书做出来的ItunesMetadata.plist中是没有购买者的AppleID的,所以你可以通过检测此文件来进行判断。也有网上流传说PP助手和同步助手的“伪正版”中是有AppleID的,但是我找了下我的APP做了下比较,好像没有发现,希望有经验的朋友指点下。

+ (BOOL)isPirated
{
    NSString *path = [NSHomeDirectory() stringByAppendingString:@"/iTunesMetadata.plist"];
    NSDictionary *infoDic = [[NSDictionary alloc] initWithContentsOfFile:path];
    
    if (infoDic[@"com.apple.iTunesStore.downloadInfo"][@"accountInfo"][@"AppleID"]) {
        return NO;
    } else if (infoDic[@"appleId"])
    {
        return NO;
    } else {
        return YES;
    }
    
}

 

 

    

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值