1

アプリのアプリ内購入を実装しました。正常に動作していましたが、 の後に応答が得られなくなりましたSKProductsRequest

私のコードを添付する

[self.delegate showProgressHUDWithTitle:@"Loading Product"];
// select from IPA Items //

// Check if Parental Control is enabled so that purchase will fail //
if ([SKPaymentQueue canMakePayments])
{
 SKProductsRequest *Prequest = [[SKProductsRequest alloc] initWithProductIdentifiers:[NSSet setWithObject:@"Item 1"]];

  Prequest.delegate = self;
  [Prequest start];
  request = Prequest;

}

このメソッドも呼び出されていません ---> -(void)request:(SKRequest *)request didFailWithError:(NSError *) error

-(void)productsRequest:(SKProductsRequest *)request didReceiveResponse:(SKProductsResponse *)response
{ 

    [self.delegate hideProgressHUD];

    [[SKPaymentQueue defaultQueue] addTransactionObserver:self];

    SKProduct *validProduct = nil;

    int count = [response.products count];

    if (count>0)
    {
             validProduct = [response.products objectAtIndex:0];
            if ([validProduct.productIdentifier isEqualToString:purchasingItem])
            {
                SKPayment *payment = [SKPayment paymentWithProduct:validProduct];
                [[SKPaymentQueue defaultQueue] addPayment:payment];
            }
            else
            {
                NSLog(@"No Valid Products");
            }    

      }
  } 
4

1 に答える 1

2

この問題はまだ発生しています。これは、Apple Developer Forums で多くの議論の対象となっています: SKProductsRequest does not workを参照してください。スレッドから提案された次のコードを追加して、同じ問題が発生していることを確認しました。同じことをお勧めします。

- (void)request:(SKRequest *)request didFailWithError:(NSError *)error
{
    UIAlertView * alert = [[UIAlertView alloc] initWithTitle:@"In-App Store unavailable" message:@"The In-App Store is currently unavailable, please try again later." delegate:nil cancelButtonTitle:@"OK" otherButtonTitles:nil, nil];
    [alert show];

}

このコードを本番環境に配置する予定はありません。代わりに、これが発生した場合はアプリ内購入ボタンを無効にしてから、後でもう一度確認します.

これは、過去数週間の Xcode 5 シミュレーターの問題のようです。修理状況をどこで確認すればよいかわかりません。IAP はデバイス上で動作するので、とりあえずそこでテストできます。

于 2013-09-21T19:39:38.323 に答える