我已经通过应用内购买创建了iPhone应用。 现在,我正处于测试阶段。
我创建了配置文件com.satyam.testapp 在iTunes连接中我创建了应用程序并上传了图像,屏幕截图,代码等。我还为应用内购买创建了两个id。一个是com.satyam.testapp.book1,另一个是com.satyam.testapp.book5
我还创建了测试帐户,用于验证我的应用内购买。
使用com.stayam.testapp我创建了开发人员测试配置文件,并在我开发的应用程序中使用了相同的配置文件。
我在iphone中注销了itunes app store帐号。
现在我开始在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];
}
答案 0 :(得分: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启用了应用内购买?
您是否检查过您的产品已售出清仓?
您项目的.plist捆绑ID是否与您的应用ID相匹配?
您是否为新的App ID生成并安装了新的配置文件?
您是否已使用此新功能将项目配置为代码签名 供应资料?
您是否正在为iPhone OS 3.0或更高版本构建?
您在制作SKProductRequest时是否使用完整的产品ID?
自从将产品添加到iTunes Connect后,您有几个小时的时间?
您的银行详细信息是否在iTunes Connect上有效?
答案 1 :(得分:7)
尝试从您正在测试的手机上删除您的应用,然后“构建并调试”。
如果这不能解决您的问题,我建议您浏览以下博文。
http://troybrant.net/blog/2010/01/in-app-purchases-a-full-walkthrough/
答案 2 :(得分:0)
1-您可以使用您登录现有帐户的测试帐户登录。 2-对于debuging,您必须等待您的产品(com.satyam.testapp.book1和com.satyam.testapp.book5)生效。目前,您的产品必须处于response.invalidProductIdentifiers列表中。当您的产品有效时,系统会要求您提供测试帐户凭据。有时,产品生效需要一些时间,并确保您签署了付费应用程序的合同。
答案 3 :(得分:0)
检查您的产品ID “com.satyam.testapp.book1”是否与您在iTunes商店中注册的相同,并检查了“清除待售”选项