我在测试In App Purchase功能时遇到问题。如果我在已安装具有先前版本的应用的设备上重新安装该应用,则SKProductsRequest仅返回与invalidProductIdentifiers上的对象的响应。如果我从设备中删除该应用程序,然后再次安装新版本,SKProductsRequest工作正常。
有什么想法吗?
提前致谢。
- (void)requestProductData:(NSString *)aFeatureID {
SLLog(@"Products Request For: %@", aFeatureID);
SKProductsRequest *request = [[SKProductsRequest alloc] initWithProductIdentifiers:[NSSet setWithObject:aFeatureID]];
request.delegate = self;
[request start];
}
- (void)productsRequest:(SKProductsRequest *)request didReceiveResponse:(SKProductsResponse *)response
{
if ([response.products count] > 0) {
[self.purchasableObjects addObjectsFromArray:response.products];
#ifndef NDEBUG
for(int i=0;i<[self.purchasableObjects count];i++)
{
SKProduct *product = [self.purchasableObjects objectAtIndex:i];
SLLog(@"Feature: %@, Cost: %f, ID: %@",[product localizedTitle],
[[product price] doubleValue], [product productIdentifier]);
}
for(NSString *invalidProduct in response.invalidProductIdentifiers)
SLLog(@"Problem in iTunes connect configuration for product: %@", invalidProduct);
#endif
isProductsAvailable = YES;
} else if ([response.invalidProductIdentifiers count] > 0){
SLLog(@"MKStoreManager-productsRequest empty results: %@", [response.invalidProductIdentifiers objectAtIndex:0]);
}
if([_delegate respondsToSelector:@selector(productFetchComplete)])
[_delegate productFetchComplete];
[request autorelease];
}
答案 0 :(得分:6)
有人在Cocoa-dev@lists.apple.com告诉我:
您是否正在连接沙盒 环境还是生产?
我相信你只能连接到 通过Xcode 和启动时的沙盒 如果应用程序正在从“升级” App Store版本,它不会触发 沙盒。至少,这是一个小小的 我目睹了IAP伏都教的一点点...... 这意味着它可能不再是真实的 在任何时候,因为IAP设置是一个 牺牲的羊羔远离了 魔法。
我对此并不确定,因为我还没有测试过,但我会尽快通知您。