在App Purchase中,在删除并重新安装应用程序后停止接收产品请求响应

时间:2011-07-06 17:21:30

标签: iphone ios app-store in-app-purchase

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

以前有人这么做过吗?谢谢!

2 个答案:

答案 0 :(得分:2)

inAppPurchase不适用于某些越狱设备(似乎可能与AppSync有关)! (沙盒测试不起作用)

答案 1 :(得分:1)

InAppPurchase适用于越狱设备!您只需要从JailBreak设备中删除AppSync,直到测试。