2014-11-23 31 views
1

我只想问,如果有一种方法可以检查用户是否确实没有编程购买应用程序。我看到无尽之剑3和其他游戏如何强制用户登录到他们的苹果帐户,并以某种方式与商店检查应用程序是否已被购买。这怎么可能以编程方式创建?我已经搜索所有网站上,只是为了找到如何开拓从中可以提前购买其他应用或视频等......感谢storkit视图检查应用程序是买

回答

5

你可以尝试检查应用程序的回执和验证它在AppStore -

NSURL* url = [[NSBundle mainBundle] appStoreReceiptURL]; // iOS 7+, do not use respondsToSelector as it will report YES for iOS 6 too 

这里的Apple's documentation如何验证您的收据。
如果收据为零或网址指向不存在的路径,则可能需要刷新收据。
实施SKRequestDelegate和检查:

NSError* err = nil; 
if (![url checkResourceIsReachableAndReturnError:&err]){ 
    SKReceiptRefreshRequest* request = [[SKReceiptRefreshRequest alloc] initWithReceiptProperties:nil]; 
    request.delegate = self; /* or your delegate's instance here */ 
    [request start]; 
} 
.... 
-(void)requestDidFinish:(SKRequest*)request{ 
    if([request isKindOfClass:[SKReceiptRefreshRequest class]]){ 
     // The URL should be available now, if it's not - I guess the app is cracked 
    } 
} 
-(void)request:(SKRequest*)request didFailWithError:(NSError *)error{ 
    ; // This does not mean the app is pirated, use this to schedule the test for later. 
} 

我会禁止在调试模式下这些检查(并在模拟器上)。
您可能需要检查此项目 - VerifyStoreReceiptiOS以验证您的收据。

+0

如果没有收据,那么应用程序被破解?此外,此操作是否会导致AppStore登录警报弹出,用户将输入其帐户信用?因为这是无限的刀片3如何保护它的应用程序免受破解... – 2014-11-23 17:00:31

+1

看起来像抓取触发苹果ID登录,忽略我以前的评论。 – 2014-11-23 21:35:07

+0

你的代码是否有效?我的意思是我把它放在我的项目中,并在登录我的苹果ID后,编译器显示'didFailWithError'消息,我的意思是你的代码证明用户之前购买了我的应用程序? – 2015-01-06 14:33:57

相关问题