EDIT3:解决
inAppPurchase不适用于越狱设备! (至少是沙盒测试)
EDIT2:现在我知道为什么响应没有通过:这是iPhone上的网络故障。 当网络连接已启动但未通过任何数据时,productRequest永远不会得到响应。
与此同时,我仍然收到无效的产品ID。有什么帮助吗?
编辑:更新:尝试添加新的测试用户帐户并使用它们(并一遍又一遍地删除/重新安装应用程序后,我现在获得无效产品...)出了什么问题?有什么遗漏?
我正在尝试在AppPurchase系统中实施,这真是太痛苦了!
在收到无效的产品ID之后,我浏览了following list:
[已检查]您是否为应用程序ID启用了应用程序内购买?
[已检查]您是否检查过您的产品已售出清仓?
[已检查]您是否已提交(并可选择拒绝)您的应用程序二进制文件?
[已检查]您项目的.plist捆绑ID是否与您的应用ID相匹配?
[已检查]您是否为新的App ID生成并安装了新的配置文件?
[已检查]您是否已使用此新配置文件将项目配置为代码签名?
[已检查]您是否正在为iPhone OS 3.0或更高版本构建?
[已检查]您在制作SKProductRequest时是否使用完整的产品ID?
[已检查 - 现在一周]您将产品添加到iTunes Connect后等了几个小时?
[已核对 - 已收到付款]您的银行详细信息是否在iTunes Connect上有效? (通过马克)
[这就是出现问题的地方]您是否尝试从设备中删除应用并重新安装?(通过Hector,S3B,Alex O,Joe和Alberto)
---->现在代表似乎没有工作.... ??我没有在控制台上获得我的@“didReceiveResponse”,但我确实得到了@“点击并处理”(下面的代码)
@implementation InAppHandler
- (void)requestProUpgradeProductData
{
NSLog(@"clicked and handling");
NSSet *productIdentifiers = [NSSet setWithObject:@"pastedFromiTunesConnect"];
productsRequest = [[SKProductsRequest alloc] initWithProductIdentifiers:productIdentifiers];
productsRequest.delegate = self;
[productsRequest start];
// we will release the request object in the delegate callback
}
#pragma mark -
#pragma mark SKProductsRequestDelegate methods
- (void)productsRequest:(SKProductsRequest *)request didReceiveResponse:(SKProductsResponse *)response
{
NSLog(@"didReceiveResponse");
NSArray *products = response.products;
proUpgradeProduct = [products count] == 1 ? [[products objectAtIndex:0] retain] : nil;
if (proUpgradeProduct)
{
NSLog(@"Product title: %@" , proUpgradeProduct.localizedTitle);
NSLog(@"Product description: %@" , proUpgradeProduct.localizedDescription);
NSLog(@"Product price: %@" , proUpgradeProduct.price);
NSLog(@"Product id: %@" , proUpgradeProduct.productIdentifier);
}
for (NSString *invalidProductId in response.invalidProductIdentifiers)
{
NSLog(@"Invalid product id: %@" , invalidProductId);
}
// finally release the reqest we alloc/init’ed in requestProUpgradeProductData
[productsRequest release];
[[NSNotificationCenter defaultCenter] postNotificationName:kInAppPurchaseManagerProductsFetchedNotification object:self userInfo:nil];
}
@end
以前有人这么做过吗?谢谢!
答案 0 :(得分:2)
inAppPurchase不适用于某些越狱设备(似乎可能与AppSync有关)! (沙盒测试不起作用)
答案 1 :(得分:1)
InAppPurchase适用于越狱设备!您只需要从JailBreak设备中删除AppSync,直到测试。