iPhone-应用程序内购买问题

问题描述 投票:2回答:4

我已经通过应用内购买创建了iPhone应用。现在,我处于测试阶段。

我创建了配置文件com.satyam.testapp在连接的iTunes中,我创建了该应用程序并上传了图像,屏幕快照,说明等。我还创建了两个ID用于应用内购买。一个是com.satyam.testapp.book1,另一个是com.satyam.testapp.book5

我还创建了测试帐户来验证我的应用内购买。

使用com.stayam.testapp,我创建了开发人员测试配置文件,并在开发的应用程序中使用了它。

我在iPhone上注销了iTunes应用商店帐户。

现在,我开始在iPhone上运行我的应用程序。俗话说,没有物品可以购买。但它甚至不问我要在哪里输入测试帐户用户名和密码的凭据.....

如何调试?

这是我的代表:

- (void)productsRequest:(SKProductsRequest *)request didReceiveResponse:(SKProductsResponse *)response
{
    NSArray *myProduct = [[NSArray alloc] initWithArray:response.products];
    for(int i=0;i<[myProduct count];i++)        
    {
        SKProduct *product = [myProduct objectAtIndex:i];
        NSLog(@"Name: %@ - Price: %f",[product localizedTitle],[[product price] doubleValue]);      
        NSLog(@"Product identifier: %@", [product productIdentifier]);
    }       

    for(NSString *invalidProduct in response.invalidProductIdentifiers)
        NSLog(@"Problem in iTunes connect configuration for product: %@", invalidProduct);

    [request autorelease];
    [myProduct release];
}
iphone in-app-purchase
4个回答
15
投票

检查您的SKProductsRequest回调,这可能表明它是由无效的产品ID引起的,不幸的是,这可能会在沙盒上调试时很麻烦

- (void)productsRequest:(SKProductsRequest *)request didReceiveResponse:(SKProductsResponse *)response
{
    NSArray *items = response.products;

    for(SKProduct *item in items)
    {
        NSLog(@"Product title: %@" , item.localizedTitle);
        NSLog(@"Product description: %@" , item.localizedDescription);
        NSLog(@"Product price: %@" , item.price);
        NSLog(@"Product id: %@" , item.productIdentifier);
    }

    for (NSString *invalidProductId in response.invalidProductIdentifiers)
    {
        NSLog(@"Invalid Product title: %@" , item.localizedTitle);
        NSLog(@"Invalid Product description: %@" , item.localizedDescription);
        NSLog(@"Invalid Product price: %@" , item.price);
        NSLog(@"Invalid product id: %@" , invalidProductId);
    }
}

假定是由无效的产品ID引起的,该产品ID通过以下检查清单运行

  • 您是否为应用程序ID启用了应用内购买功能?

  • 您是否已选中产品的销售许可?

  • 您的项目的.plist捆绑包ID是否与您的应用程序ID相符?

  • 您是否已为新的App ID生成并安装了新的配置文件?

  • 您是否已将项目配置为使用此新代码进行代码签名供应配置文件?

  • 您要针对iPhone OS 3.0或更高版本进行构建吗?

  • [发出SKProductRequest时是否使用完整的产品ID?

  • 自从将产品添加到iTunes Connect以来您已经等待了几个小时?

  • 您的银行详细信息在iTunes Connect上是否有效?


7
投票

[尝试从正在测试的手机中删除您的应用,然后“构建并调试”。

如果这不能解决您的问题,建议您阅读以下博客文章。

http://troybrant.net/blog/2010/01/in-app-purchases-a-full-walkthrough/


0
投票

1-您可以从测试帐户中注销现有的帐户登录。2-为了进行调试,您必须等待产品(com.satyam.testapp.book1和com.satyam.testapp.book5)生效。当前,您的产品必须在response.invalidProductIdentifiers列表中。产品有效时,系统会要求您提供测试帐户凭据。有时,产品生效需要一些时间,并确保您签署了付费应用的合同。


0
投票

检查您的产品ID “ com.satyam.testapp.book1”是否与您在iTunes商店中注册的产品ID相同,并且您已选中“待售”选项

© www.soinside.com 2019 - 2024. All rights reserved.