3

ベータ版であるため、アプリ内購入のサンドボックス テストが 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
             }
         }
     }];
}
4

2 に答える 2

0

今日、古いデバイスの 1 つで同様の問題が発生しました。製品リクエストから製品が返されず、0 製品の配列が返されました。

- (void)productsRequest:(SKProductsRequest *)request didReceiveResponse:(SKProductsResponse *)response
{
     NSLog(@"Received products results - count:  %d...", [response.products count]); 
} 

他の 2 つのデバイスで動作し、データを返していました。この iOS5 デバイスは、私の子供がプレイするために使用するデバイスであるため、ある時点で誰かがこのデバイスのストアからアプリをダウンロードしたのではないかと考えました。そのため、デバイスを再起動し、デバイスのストアから個人アカウントをログアウトし、アプリを削除しました。XCode 5 からアプリを再インストールすると、サンドボックスでうまく機能しました。

そのため、これらの API のセキュリティを向上させるために何かが変更されているように思えます。

于 2013-09-26T15:02:09.920 に答える