Sandbox for In App购买测试是否可能适用于iOS,因为它处于测试阶段?它正在iOS 6模拟器和设备上工作,但不能在iOS 7模拟器或设备上工作,继续无法连接到iTunes。
代码:
- (void)purchaseRemoveAds
{
NSLog(@"ITEMS :%@", [IAPShare sharedHelper].iap.productIdentifiers);
[[IAPShare sharedHelper].iap requestProductsWithCompletion:^(SKProductsRequest* request,SKProductsResponse* response)
{
if(response > 0 ) {
NSLog(@"PRODUCTS: %@", [IAPShare sharedHelper].iap.products);
if ([[IAPShare sharedHelper].iap.products count] != 0) {
SKProduct* product =[[IAPShare sharedHelper].iap.products objectAtIndex:0];
[[IAPShare sharedHelper].iap buyProduct:product
onCompletion:^(SKPaymentTransaction* trans){
if(trans.error)
{
NSLog(@"Fail %@",[trans.error localizedDescription]);
}
else if(trans.transactionState == SKPaymentTransactionStatePurchased) {
[[IAPShare sharedHelper].iap provideContent:@"RemoveAds"];
NSLog(@"SUCCESS %@",response);
NSLog(@"Purchases %@",[IAPShare sharedHelper].iap.purchasedProducts);
[bannerView_ removeFromSuperview];
UIAlertView *alert = [[UIAlertView alloc]initWithTitle:@"Success!" message:[NSString stringWithFormat:@"You have successfully purchased %@", product.localizedTitle] delegate:nil cancelButtonTitle:@"OK!" otherButtonTitles: nil];
[alert show];
}
else if(trans.transactionState == SKPaymentTransactionStateFailed) {
NSLog(@"Fail");
}
}];//end of buy product
}
}
}];
}
答案 0 :(得分:4)
根据Apple doc,他们不支持iOS7模拟器中的应用内购买。您需要使用设备来测试应用内购买。我不知道为什么也无法使用设备测试应用内购买 请参考apple doc。在那里参考iOS模拟器。
答案 1 :(得分:0)
我今天在我的一台旧设备上遇到了类似的问题。我没有从我的产品请求中获得任何产品返回0个产品的数组。
- (void)productsRequest:(SKProductsRequest *)request didReceiveResponse:(SKProductsResponse *)response
{
NSLog(@"Received products results - count: %d...", [response.products count]);
}
它正在其他2台设备上工作并返回数据,而这个iOS5设备是我孩子们用来玩的设备,所以我想也许有人曾经在这个设备上从商店下载了应用程序。所以我重新启动了设备,将我的个人帐户从设备上的商店中删除,并删除了应用程序,当我从XCode 5重新安装应用程序时,它在Sandbox中运行良好。
因此,我觉得有些事情正在发生变化,以提高这些API的安全性。