iOS 7 Beta - 在App测试中无法正常工作

时间:2013-09-16 16:43:32

标签: iphone in-app-purchase ios7 itunes-store

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
             }
         }
     }];
}

2 个答案:

答案 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的安全性。