简体   繁体   English

在购买应用程序时出现iTune问题!

[英]Problem with iTune in app purchase!

I am setting up an in-app-purchase system in my app. 我正在我的应用中设置应用内购买系统。 I have registered the in-app-purchase at iTune connect. 我在iTune connect上注册了应用内购买。 And here comes my code: 这是我的代码:

This is the code for requesting product info: 这是请求产品信息的代码:

- (void) requestProductData {   
    SKProductsRequest *request= 
        [[[SKProductsRequest alloc] initWithProductIdentifiers: 
         [NSSet setWithObject:@"com.myapp.id"]] autorelease];
    request.delegate = self;
    [request start];
}

This is the code for receiving the product info: (basically I did nothing but trying to print it out) 这是接收产品信息的代码:(基本上我只是尝试将其打印出来)

- (void)productsRequest:(SKProductsRequest *)request didReceiveResponse:(SKProductsResponse *)response {
    NSArray *myProduct = response.products;
    SKProduct *product = [myProduct objectAtIndex:0];
    NSNumberFormatter *numberFormatter = [[NSNumberFormatter alloc] init];
    [numberFormatter setFormatterBehavior:NSNumberFormatterBehavior10_4];
    [numberFormatter setNumberStyle:NSNumberFormatterCurrencyStyle];
    [numberFormatter setLocale:product.priceLocale];
    NSString *formattedString = [numberFormatter stringFromNumber:product.price];
    [numberFormatter release];
    NSLog(@"Product 0 : %@, %@, %@, %@, %@", product.productIdentifier, product.localizedDescription, product.localizedTitle, product.priceLocale.localeIdentifier, formattedString);
    [request autorelease];
}

I have applied the delegate: 我申请了代表:

@interface StoreObserver : NSObject <SKProductsRequestDelegate>{

I used a button to trigger requestProductData . 我用一个按钮来触发requestProductData By using breakpoints, I was sure it got called. 通过使用断点,我确信它被调用了。 However, productsRequest was never called. 但是,从未调用过productsRequest I made sure of the connectivity too. 我也确保了连接性。

Does anybody hava any clue? 有人有任何线索吗?

你跳过了我猜的部分方法

[[SKPaymentQueue defaultQueue] addTransactionObserver:self];

It turns out that the problem is here: 原来问题出在这里:

- (void) requestProductData {   
    SKProductsRequest *request= 
        [[[SKProductsRequest alloc] initWithProductIdentifiers: 
         [NSSet setWithObject:@"com.myapp.id"]] autorelease]; //<- here
    request.delegate = self;
    [request start];
}

You should never autorelease the SKProductsRequest. 您永远不应该自动发布SKProductsRequest。 I am so stupid to make this mistake. 我犯这个错误真是太蠢了。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM