Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/objective-c/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Iphone 将NSString与网站上文本段落的一部分相匹配。-软件开发包_Iphone_Objective C - Fatal编程技术网

Iphone 将NSString与网站上文本段落的一部分相匹配。-软件开发包

Iphone 将NSString与网站上文本段落的一部分相匹配。-软件开发包,iphone,objective-c,Iphone,Objective C,所以基本上我正在开发一个应用程序,其中一个功能是反破解功能。它检查网页上设备的UDID号,如果有,它允许应用程序运行,如果没有,它运行exit(0);。到目前为止,这就是我所拥有的 这在我的AppDelegate.m中 - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions { [window addSubview:mainV

所以基本上我正在开发一个应用程序,其中一个功能是反破解功能。它检查网页上设备的UDID号,如果有,它允许应用程序运行,如果没有,它运行exit(0);。到目前为止,这就是我所拥有的

这在我的AppDelegate.m中

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions { 
    [window addSubview:mainViewController.view];

    if ([[[UIDevice currentDevice] uniqueIdentifier] isEqualToString:[NSString stringWithContentsOfURL:[NSURL URLWithString:@"http://example.com" ]]]) {
        NSLog(@"Match!");
        [window makeKeyAndVisible];
    }
    else {
        NSLog(@"No match.");
        alertView = [[UIAlertView alloc] initWithTitle:@"Access denied!" message:@"You aren't using an official version of this application." delegate:self cancelButtonTitle:@"Okay" otherButtonTitles:nil];
        [alertView show];
        [alertView release];
    }

    return YES;
}

- (void)alertView:(UIAlertView *)alertView willDismissWithButtonIndex:(NSInteger)buttonIndex {
    if (buttonIndex == 0) {
    exit(0);
    }
}
所以基本上,你看到了什么

if ([[[UIDevice currentDevice] uniqueIdentifier] isEqualToString:[NSString stringWithContentsOfURL:[NSURL URLWithString:@"http://example.com" ]]]) {
当它运行时,它只能检测所有文本,而不是索引它并查找UDID号。所以我只能在上面放一个UDID号,所以每个用户的应用程序都会崩溃。我想设置它,这样我就可以在那里有我想要的很多东西,它将只是索引它,并在页面上搜索UDID号。有人能帮我吗?这很重要


多谢各位

是的,所以如果我买了你的应用程序,而你的服务器坏了(stringWithContentsOfURL返回零),你的应用程序会认为我盗版了你的软件


把时间花在没有bug的最终用户功能上,而不是花在这个上,怎么样?

对我来说,生成UDID的xml,然后将其解析成一个数组,然后将每个元素与特定的UDID进行比较会更容易些

我不明白这是一个什么“反破解功能”,除非您计划以某种方式获得通过iTunes合法购买您的应用程序的用户的所有设备的UDID。你不可能得到这样一份清单。即使你可以,这也可能违反苹果的开发者协议,特别是关于隐私和信息存储的部分

总而言之:

  • 这一解决方案存在根本性的致命缺陷
  • 还有其他更有效的抗裂技术,特别是那些使用较软方法的抗裂技术。。。但没有一个是完美的
  • 正如St3fan所说,你的技术需要一个工作的互联网连接,这不是你可以一直假设的。在这种情况下,这种技术不会失败。在这种情况下,苹果可以拒绝你的应用。如果失败,这将不是“苹果的问题”。这是你的问题

不,你不明白这一点。如果网站上未列出UDID号码,则应用程序将自行终止。你读过密码了吗?该网站是一个白名单,而不是黑名单。编辑*没关系,对不起。读得太快了,以为你是在说如果你破解了它。基本上,服务器崩溃将取决于苹果。所以这将是他们的问题,因为它是在iDisk上托管的。我非常理解你在做什么,我认为实现它是一件非常愚蠢的事情。如果iDisk因任何原因(维护、本地路由问题、防火墙、互联网问题等)不可用,并且合法用户无法使用该应用程序,因为您认为他是盗版您的软件,那么到底是谁的问题?我想一旦人们发现,你会得到很多退款和不好的评价。你能解释一下如何做到这一点吗?你将创建一个包含udid列表的网页。我建议您将您的网页替换为具有类似结构的xml页面,然后实现NSXMLParser的委托,该委托可以将此xml页面解析为一个数组。如果解析是一个问题,请让我知道。对不起,你能做一些示例代码吗?我不熟悉SDK的这一部分,它非常混乱。谢谢(void)parser:(NSXMLParser*)parser didStartElement:(NSString*)elementName namespaceURI:(NSString*)namespaceURI qualifiedName:(NSString*)qName属性:(NSDictionary*)attributeDict{if([elementName isEqualToString:@“udid”]){[self.udidMutableArray addObject:[attributeDict objectForKey:@“value”]];}抱歉,self.udidMutableArray不工作。正如我前面所说,我对SDK的这一部分并不十分熟悉,但在阅读了一些内容后,我对这一功能有了更多的了解。显然,赛尔夫在哪里。是,必须是代理。。。只是我不知道该放什么。非常感谢你!它的目标是越狱社区,并且该应用程序仅适用于iPhone。你能告诉我如何扫描整个网页吗?谢谢。不管你针对的是哪个社区,这种方法都有根本性的缺陷。还有:越狱社区的防裂解决方案?你是认真的吗?不管你怎么努力,总有人会绕过你的解决方案。苹果、微软和谷歌等公司每年在反盗版措施上花费数十亿美元——是什么让你认为你可以做得更好?此外,正如Shaggy提到的,这种方法根本不起作用。如果为你的应用程序合法付费的人试图在WiFi范围之外或没有手机数据连接的情况下使用它,该应用程序将退出。当应用程序在iPhone上自行退出时,用户会认为这是一次崩溃,因为这是同样的行为。人们会认为你的应用程序很粗糙。它是一个自动回复收到的短信的应用程序。无论如何,它都需要连接到塔上,而且它只在发射时处理这个问题。另外,我可以做一些简单的练习。嗨。这对于企业即席应用程序非常有用。丹尼尔,你找到解决办法了吗?干杯,Ompah