InAppPurchase stop receiving the productRequest response after deleting and reinstalling app

半世苍凉 提交于 2019-12-12 23:40:55

问题


EDIT3:SOLVED

inAppPurchase doesn't work on jailbreak devices! (at least the sandbox testing)


EDIT2: Now I know why the response wasn't getting through: It was a network malfunction on the iPhone. When the network connection is up but not getting through any data the productRequest never gets a response.

Meanwhile I'm still getting an invalid product ID. Any help?


EDIT: Update: After trying adding new test user accounts and using them (and deleting/reinstalling the app over and over I now get Invalid Product...) What's wrong? What's missing?


I'm trying to implemente inAppPurchase system and it's been a pain!

After keep getting invalid product ID's I went through the following list:

[CHECKED] Have you enabled In-App Purchases for your App ID?

[CHECKED] Have you checked Cleared for Sale for your product?

[CHECKED] Have you submitted (and optionally rejected) your application binary?

[CHECKED] Does your project’s .plist Bundle ID match your App ID?

[CHECKED] Have you generated and installed a new provisioning profile for the new App ID?

[CHECKED] Have you configured your project to code sign using this new provisioning profile?

[CHECKED] Are you building for iPhone OS 3.0 or above?

[CHECKED] Are you using the full product ID when when making an SKProductRequest?

[CHECKED - a week now] Have you waited several hours since adding your product to iTunes Connect?

[CHECKED - received payments] Are your bank details active on iTunes Connect? (via Mark)

[THIS is where the problem arised] Have you tried deleting the app from your device and reinstalling? (via Hector, S3B, Alex O, Joe, and Alberto)

----> And now the delegate doesn't seem to work....?? I don't get my @"didReceiveResponse" on the console but i do get the @"clicked and handling" (Code below)

@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

As anyone got this before? Thanks!


回答1:


inAppPurchase doesn't work on some jailbreak devices (seems that can have something to do with AppSync)! (the sandbox testing doesn't work that is)




回答2:


InAppPurchase works on jailbreak devices! You just need to remove AppSync from your JailBreak device till testing.



来源:https://stackoverflow.com/questions/6600424/inapppurchase-stop-receiving-the-productrequest-response-after-deleting-and-rein

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!