【发布时间】:2012-02-17 09:38:17
【问题描述】:
我正在尝试在免费应用程序中实现应用内购买。
我在 iTunes 连接门户的应用内购买管理器中创建了一个产品 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 Connect 中的整个过程并没有给我信心。
我认为应用程序需要在线销售才能在应用程序内购买才能正常工作。但是,我决定不包含在应用购买中,而是让 iTunes 中的应用内购买连接进行审核。在审核过程中,该应用程序被拒绝,因为它应该使用应用内购买进行测试。
但是,如果产品列表总是为零,我该如何测试应用购买呢?
如果有更多经验的人可以给我一个建议,因为我已经对此感到疯狂了!
谢谢,
谨向您致以最诚挚的问候,
努诺
【问题讨论】:
标签: iphone ios ipad in-app-purchase app-store-connect