IOS应用内购买突然停止工作,获取空标识符

时间:2013-08-07 14:59:23

标签: ios in-app-purchase

我的应用内购买工作一直持续到昨天,今天我正在提交我的应用以供审核。我做的唯一更改是在iTunes的应用页面中,我将我的应用(通过检查)与应用内购买相关联。

从那时起,每次我在我的调试应用程序中尝试使用我的测试帐户购买东西时,我都会收到此错误:

NSInvalidArgumentException', reason: 'Invalid product identifier: (null)'

我已经:

  1. 重新安装了我的应用
  2. 从我的商店退出并再次使用我的测试帐户
  3. 但今天似乎没什么用。完全相同的代码昨天工作正常,使用相同的测试帐户。

    可能是因为我在iTunes中做了这个改变?我担心当我的应用程序获得批准并上线时会发生什么。

    非常感谢任何帮助。

    编辑:

    问题是数组_products保持为零。

    - (void)reload {
        _products = nil;
        NSLog(@"reload is called");
        [[VimaIAPHelper sharedInstance] requestProductsWithCompletionHandler:^(BOOL success, NSArray *products) {
            if (success) {
                _products = products;
                NSLog(@"Success from AppStore");
            }
        }];
        for (SKProduct* product in _products) {
            NSLog(@"In-app item:%@",product.localizedTitle);
        }
    }
    

    永远不会调用Success日志消息。昨天我没有问题,使用相同的代码。

    编辑: 经过多次尝试,它确实有效。没有改变什么。似乎服务器需要花费大量时间来回复。但是,因为我得到了"cannot connect to itunes",所以我无法购买该产品。为什么会这样?

    EDIT2:

    在其他尝试中,问题似乎出现在此代码中:

    pragma mark - SKProductsRequestDelegate

    - (void)productsRequest:(SKProductsRequest *)request didReceiveResponse:(SKProductsResponse *)response {
    
        NSLog(@"Loaded list of products...");
        _productsRequest = nil;
    
        NSArray * skProducts = response.products;
        for (SKProduct * skProduct in skProducts) {
            NSLog(@"Found product: %@ %@ %0.2f",
                  skProduct.productIdentifier,
                  skProduct.localizedTitle,
                  skProduct.price.floatValue);
        }
    
        _completionHandler(YES, skProducts);
        _completionHandler = nil;
    
    }
    
    在for循环之后

    。特别是,我得到了一行BAD_ACCESS:_completionHandler(YES, skProducts);

2 个答案:

答案 0 :(得分:1)

已报告Xcode 5模拟器的问题但未修复。见this post描述情况。

答案 1 :(得分:1)

实际上问题是,在这些日子里整个Apple开发中心都出现故障,所以上面的代码适用于正在寻找示例的其他人。