如何在iTunes中测试我的应用内购买连接

时间:2012-06-14 11:18:54

标签: iphone ios xcode

我正在iOS sdk中进行inapp-purchase工作,我完成了所有步骤,例如在iTunes中创建应用程序和非耗材应用程序在iTunes上的manage-inapppurchase中连接。我的应用程序状态为等待上传,如下面的屏幕截图:

enter image description here

我的无法购买状态已准备好提交

enter image description here

代码明智的inapp-purchase功能已完成,但是,我测试了我的应用 SKProductsRequest 返回没有找到产品...!

我的主要应用包ID,例如 com.mycompany.myapp

我的应用内套装ID如 com.mycompany.paidapp

他们如何测试inapp购买步骤,任何人都可以指导我,请...!

我的示例代码在这里:

- (void)loadStore {

    if ([SKPaymentQueue canMakePayments]) {
        NSLog(@"Parental-controls are disabled");

        request = [[SKProductsRequest alloc] initWithProductIdentifiers:[NSSet setWithObject:@"com.mycompany.paidapp"]];
        //request.delegate = self;
        [request setDelegate:self];
        [request start];


    }
    else {
        NSLog(@"Parental-controls are enabled");
    }

}

- (void)productsRequest:(SKProductsRequest *)request didReceiveResponse:(SKProductsResponse *)response {

    SKProduct *validProduct = nil;
    int count = [response.products count];
    if (count > 0) 
    {
        validProduct = [response.products objectAtIndex:0];
        NSLog(@"Products found!");
        [[NSNotificationCenter defaultCenter] postNotificationName:kProductsLoadedNotification object:@"Product Found..!"];

    } else if (!validProduct) 
    {
        NSLog(@"No products available");
        [[NSNotificationCenter defaultCenter] postNotificationName:kProductsLoadedNotification object:@"Product Not Found..!"];

    }

}

命令提示符始终在输出下面返回nslog:

No products available

2 个答案:

答案 0 :(得分:2)

用于测试应用程序内,您可以创建AppID以及一些应用程序内容,在发布应用程序之前,您应该检查它。

因此我遵循的政策如下: 1.首先上传一个应用程序。 2.添加应用内容。 3.自己拒绝二进制文件。 一旦您对应用程序内测试没问题,然后将新二进制文件重新加载到iTunes。

希望这有帮助。

答案 1 :(得分:1)

应用程序包名称和iTunes应用程序包名称应相同。和产品必须存在于iTunes上。 请尝试以下代码:

[productIdentifierList addObject:@"CB001"];
[productIdentifierList addObject:@"CB002"];
[productIdentifierList addObject:@"CB003"];

        SKProductsRequest *request = [[SKProductsRequest alloc] initWithProductIdentifiers:[NSSet setWithArray:productIdentifierList]];
        request.delegate = self;
        [request start];

CB001,CB002是您iTunes上的产品ID。

对我来说很好。