1

我对应用内购买有疑问。向服务器发送请求后,没有返回任何产品SKProductsRequest

我这样发送请求:

    NSMutableSet *identificators = [[NSMutableSet alloc] init];
    [identificators addObject:kInAppPurchaseOneWeekIdentifier];
    [identificators addObject:kInAppPurchaseOneMonthIdentifier];
    [identificators addObject:kInAppPurchaseSixMonthsIdentifier];

    SKProductsRequest *request = [[SKProductsRequest alloc] initWithProductIdentifiers:identificators];
    request.delegate = self;
    [request start];

    [identificators release];

在 Consts.h 我有那些

// In App Purchase
#define kInAppPurchaseOneWeekIdentifier              @"com.astroboxapp.iap.OneWeek"
#define kInAppPurchaseOneMonthIdentifier             @"com.astroboxapp.iap.OneMonth"
#define kInAppPurchaseSixMonthsIdentifier            @"com.astroboxapp.iap.SixMonths"

在我的课堂上我已经实现了

-(void)productsRequest:(SKProductsRequest *)request didReceiveResponse:(SKProductsResponse *)response {

    if ( [response.products count] > 0 ) {
     // i've do my stuff - show the IAP to the user
    } else {
     // here goes the error handling
    }

}

在我的情况下[response.products count]是空数组/字典,所以我抛出一个错误。

编辑:我做了什么?

  1. 我创建了一个新的 IAP 并将它们与我的应用程序相关联,我也更改了产品 ID 并在我的 Consts.h 中更改它们

  2. 我试图以某种方式将应用程序版本从 1.0 更改为 1.1,这有助于我更改此版本的 IAP。

  3. 仍然无法在我的设备上运行,而在模拟器中有我的 IAP 条目但我可以测试 - 因为 StoreKit 不允许测试从 sumulator 购买。

  4. 在我的设备上,我正在从商店注销。

4

1 回答 1

2

如果 [response invalidProductIdentifers] 数组不为空,则表示您的产品无法下载,因此产品数量为空是正常的。请检查您的响应

于 2012-08-11T12:25:19.440 回答