0

タイトルのとおり、SKProductsResponse からの応答がありません。

私はそれをどのようにしていますか:

-(void)viewWillAppear:(BOOL)animated
{
    [super viewWillAppear:animated];
    //self.tableView.hidden = TRUE;

    [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(productsLoaded:) name:kProductsLoadedNotification object:nil];
    [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(productPurchased:) name:kProductPurchasedNotification object:nil];
    [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(productPurchaseFailed:) name:kProductPurchaseFailedNotification object: nil];

    Reachability *reach = [Reachability reachabilityForInternetConnection]; 
    NetworkStatus netStatus = [reach currentReachabilityStatus];    
    if (netStatus == NotReachable) 
    {        
        progressHud = [InAppProgressHud showHUDAddedTo:self.navigationController.view animated:YES];
        progressHud.labelText = @"Pas de connection internet";
        progressHud.detailsLabelText = @"Activez votre 3G ou le WIFI et rééssayez";
        //[self performSelector:@selector(dismissHUD:) withObject:nil afterDelay:3.0];
    } 
    else 
    {        
        if ([InAppPurchaseSingleton sharedHelper].Products == nil) 
        {
            [[InAppPurchaseSingleton sharedHelper] requestProducts];
            progressHud = [InAppProgressHud showHUDAddedTo:self.navigationController.view animated:YES];
            progressHud.labelText = @"Chargement...";
            [self performSelector:@selector(timeout:) withObject:nil afterDelay:30.0];
        }
    }
}

私の要求:

-(void)requestProducts 
{
    self.request = [[[SKProductsRequest alloc]initWithProductIdentifiers:productIdentifiers] autorelease];
    request.delegate = self;
    [request start];
}

そして応答コールバック:

-(void)productsRequest:(SKProductsRequest *)requestLocal didReceiveResponse:(SKProductsResponse *)response 
{  
    self.products = response.products;

    for (SKProduct *prod in self.Products)
    {
        NSLog(@"Product title: %@" , prod.localizedTitle);
        NSLog(@"Product description: %@" , prod.localizedDescription);
        NSLog(@"Product price: %@" , prod.price);
        NSLog(@"Product id: %@" , prod.productIdentifier);
    }
    self.request = nil;    
   [[NSNotificationCenter defaultCenter] postNotificationName:kProductsLoadedNotification object:products];    
}

問題は、コールバックが呼び出されないことです。応答がなく、何も起こりません。エラーログすら取得していません。何もありません=(

→インターネット接続は大丈夫だと思います

-> iOS 5.1シミュレーターとデバイスで試しましたが、両方で同じ結果が得られました

→Itunesコネクトからログアウトしてしまいました

->私のアプリケーション BundleId : fr.eamdev.testapp

->バージョン: アップロードの準備で 0.2

->私は 3 つの IAP を持っています: fr.eamdev.testapp.package_1、fr.eamdev.testapp.package_2、fr.eamdev.testapp.package_3 // 消耗品ではありません。

誰かアイデアがありますか、私はここで静かに必死です TT.TT だから、私はすでにトロイ・ブラントのアプリ内購入を通過したことを知っています: 完全なウォークスルーとレイ・ウェンダーリッヒのチュートリアル

4

1 に答える 1

1

ここで、いくつかの点を確認してください。

4.3 sim を試してみてください。4.3 sim でこれを呼び出すと、次のようなエラー メッセージがログに記録されます。

5.1 sim では正常に動作します。これにより、通話が正常に行われているかどうかがわかります。

あなたが投稿したコードはすべて私には良さそうです(autorelease?ARCを使用していませんか?)ので、シングルトンに問題があるのではないかと思っています(侮辱されていないことを願っています:))。シングルトンの作成が失敗すると、他の呼び出しは暗黙のうちに失敗します。シングルトン共有ヘルパーからの戻り値を保存していないため、デバッガーで確認できませんでした。

お役に立てれば

于 2012-07-18T16:49:07.060 に答える