我的应用内购买工作一直持续到昨天,今天我正在提交我的应用以供审核。我做的唯一更改是在iTunes的应用页面中,我将我的应用(通过检查)与应用内购买相关联。
从那时起,每次我在我的调试应用程序中尝试使用我的测试帐户购买东西时,我都会收到此错误:
NSInvalidArgumentException', reason: 'Invalid product identifier: (null)'
我已经:
但今天似乎没什么用。完全相同的代码昨天工作正常,使用相同的测试帐户。
可能是因为我在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:
在其他尝试中,问题似乎出现在此代码中:
- (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);
答案 0 :(得分:1)
已报告Xcode 5模拟器的问题但未修复。见this post描述情况。
答案 1 :(得分:1)
实际上问题是,在这些日子里整个Apple开发中心都出现故障,所以上面的代码适用于正在寻找示例的其他人。