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 所以你知道我已经通过了 Troy Brant 的应用内购买:完整演练和 Ray Wenderlich 的教程

4

1 回答 1

1

这里有几件事要检查。

试试4.3 sim。当我在 4.3 sim 上调用它时,我在日志中收到一条错误消息:- 2012-07-18 18:45:03.501 shadowslide[10598:13703] :在模拟器中立即失败

它在 5.1 sim 中正常工作。这将告诉您是否可以正常拨打电话。

您发布的所有代码对我来说都很好(自动发布?不使用 ARC?),所以我想知道您是否对单例有问题(希望您不会感到受到侮辱 :))。如果单例创建失败,那么其他调用将静默失败。由于您没有存储来自单例共享帮助程序的返回,因此您将无法在调试器中检查它。

希望这可以帮助

于 2012-07-18T16:49:07.060 回答