SKProductsRequest - 现在没有回应(正在运行 - 相同的代码)

时间:2012-02-04 19:12:50

标签: iphone sdk in-app-purchase storekit

代码如下 - 这段代码昨天正在提供无效ID现在更长的工作,我已经代码大约10次

的.m

 #import <UIKit/UIKit.h>
 #import <StoreKit/StoreKit.h>

@interface InAppViewController : UIViewController  <SKProductsRequestDelegate, SKPaymentTransactionObserver> {

    SKProduct *proUpgradeProduct;
    SKProductsRequest *productsRequest;
}

·H

#import "InAppViewController.h"


@implementation InAppViewController

- (void)viewDidLoad{
    [self requestProUpgradeProductData];
}

- (void)dealloc {
    [super dealloc];
}

- (void)requestProUpgradeProductData
{
    NSLog(@"called  productsRequest");

    NSSet *productIdentifiers = [NSSet setWithObject:@"com.okz8.investor.gem15" ];
    productsRequest = [[SKProductsRequest alloc] initWithProductIdentifiers:productIdentifiers];
    productsRequest.delegate = self;
    [productsRequest start];

    // we will release the request object in the delegate callback
}

#pragma mark -
#pragma mark SKProductsRequestDelegate methods

- (void)productsRequest:(SKProductsRequest *)request didReceiveResponse:(SKProductsResponse *)response
{
    NSArray *products = response.products;
    proUpgradeProduct = [products count] == 1 ? [[products firstObject] retain] : nil;
    if (proUpgradeProduct)
    {
        NSLog(@"Product title: %@" , proUpgradeProduct.localizedTitle);
        NSLog(@"Product description: %@" , proUpgradeProduct.localizedDescription);
        NSLog(@"Product price: %@" , proUpgradeProduct.price);
        NSLog(@"Product id: %@" , proUpgradeProduct.productIdentifier);
    }

    for (NSString *invalidProductId in response.invalidProductIdentifiers)
    {
        NSLog(@"Invalid product id: %@" , invalidProductId);
    }

    // finally release the reqest we alloc/init’ed in requestProUpgradeProductData
    [productsRequest release];

    //[[NSNotificationCenter defaultCenter] postNotificationName:kInAppPurchaseManagerProductsFetchedNotification object:self userInfo:nil];
}

这只是不回复我已经完成的所有http://troybrant.net/blog/2010/01/invalid-product-ids/

现在收到无效ID我没有得到任何东西

3 个答案:

答案 0 :(得分:6)

根据user178379响应,尝试实现此方法:

- (void)request:(SKRequest *)request didFailWithError:(NSError *)error {
    NSLog(@"request - didFailWithError: %@", [[error userInfo] objectForKey:@"NSLocalizedDescription"]);
}

我的问题是:Cannot connect to iTunes Store,用于:

StoreKit (In-App purchases) will not work in the Simulator. 13962338

答案 1 :(得分:5)

遇到同样的问题并在此处找到解决方案: productsRequest response method is not calling

由于自动引用计数,我的请求立即被删除...

答案 2 :(得分:0)

顺便说一下,在这种情况下,当构造SKProductsRequest期间传递的产品标识符集合为空时,SKProductsRequestDelegate委托函数都不会被调用。< / p>