我正在尝试在免费应用中实施应用内购买。
我已在itunes connect门户网站的应用内购买管理器中创建了一个产品ID“test1”。
当我按以下方式提出产品请求时:
- (id)init {
NSSet *productIdentifiers = [NSSet setWithObjects:
@"test1",
nil];
if ((self = [self initWithProductIdentifiers:productIdentifiers])) {
}
return self;
}
- (id)initWithProductIdentifiers:(NSSet *)productIdentifiers
{
if ((self = [super init]))
{
// Store product identifiers
_productIdentifiers = [productIdentifiers retain];
// Check for previously purchased products
NSMutableSet * purchasedProducts = [NSMutableSet set];
for (NSString * productIdentifier in _productIdentifiers)
{
BOOL productPurchased = [[NSUserDefaults standardUserDefaults] boolForKey:productIdentifier];
if (productPurchased)
{
[purchasedProducts addObject:productIdentifier];
NSLog(@"Previously purchased: %@", productIdentifier);
}
NSLog(@"Not purchased: %@", productIdentifier);
}
self.purchasedProducts = purchasedProducts;
}
return self;
}
- (void)productsRequest:(SKProductsRequest *)request didReceiveResponse:(SKProductsResponse *)response {
NSLog(@"Received products results...");
self.products = response.products;
self.request = nil;
[[NSNotificationCenter defaultCenter] postNotificationName:kProductsLoadedNotification object:_products];
NSLog(@"%d",[self.products count]);
NSEnumerator *e = [self.products objectEnumerator];
id object;
while(object=[e nextObject])
{
NSLog(@"item");
NSLog(@"%s",(char*)object);
}
}
- (void)requestProducts {
self.request = [[[SKProductsRequest alloc] initWithProductIdentifiers:_productIdentifiers] autorelease];
_request.delegate = self;
[_request start];
}
响应总是0.我不明白我做错了什么。此代码来自教程。关于应用程序购买的文档往往很混乱,itunes连接的整个过程并没有给我信心。
我认为该应用程序需要在线销售才能在应用内购买。但是,我决定不加入应用程序购买,但让itunes中的应用程序购买连接进行审核。在审核过程中,该应用程序被拒绝,因为它应该与应用内购买进行测试。
但是,如果产品列表始终为零,我如何测试应用内购买?
如果有经验的人可以给我一个建议,因为我已经疯了!
谢谢,
致以最诚挚的问候,
努诺
答案 0 :(得分:3)
我发现这个问题的最一致的解决方案就是这个清单。它应该是广泛传播的,以避免任何人通过同样的问题,这是非常耗时和绝望的:
积分转到Troy Brant
答案 1 :(得分:0)
看看这里,回答了我的所有问题(框架也很简单: - ):
http://blog.mugunthkumar.com/coding/iphone-tutorial-%E2%80%93-in-app-purchases/
但我必须说整个应用程序内购买的东西是PITA - 我的应用程序刚刚发布,当然我下载了它并检查了应用内购买屏幕。猜猜看,它完全是空的!
经过一些阅读后,似乎即使所有产品都被接受并准备出售,应用内购买产品仍然需要一段时间才能在网上上线--3小时后它终于有效......
编辑:
您需要为自己的应用创建应用内购买,并将其设置为在itunes connect中清除销售。您无需上传屏幕截图或已经过审核,以便能够在开发模式下对其进行测试。
你是如何命名itunes connect的购买?通常,您应该使用com.companyname.productname.purchasename名称,并且您从应用程序ha请求的名称完全相同。