我有一个问题,我解决不了,而且我卡住了。应用内购买适用于iOS 3和5,但不适用于iOS 4
我已经实现了一个应用程序内购买屏幕,问题是,当我在iOS3.1.3上检查它时,它在iOS5模拟器上也可以完美工作,但是当使用iOS4时,我不会在响应中获得产品,
我使用的相关代码:
-(void)productsRequest:(SKProductsRequest *)request didReceiveResponse:(SKProductsResponse *)response{
if ([response.products count]==0) {
// Always gets in here on iOS4....
}else{
//get here on 3.1.3 or 5
[productDetailsList addObjectsFromArray: response.products];
}
....
[request release];
}
- (void)requestProductData {
for (short item_count = 1; item_count <=4 ; item_count++) {
[productIdentifierList addObject:[NSString stringWithFormat:@"myApp.item.%d", item_count]];
}
SKProductsRequest *request = [[[SKProductsRequest alloc] initWithProductIdentifiers:[NSSet setWithArray:productIdentifierList]] retain];
request.delegate = self;
[request start];
}
.h文件看起来是这样的:
#import <UIKit/UIKit.h>
#import <StoreKit/StoreKit.h>
@interface viewController : UIViewController
<SKProductsRequestDelegate, SKPaymentTransactionObserver> {
NSMutableArray *productIdentifierList;
NSMutableArray *productDetailsList;
NSMutableArray *transactionHistory;
}
@property (nonatomic, retain) NSMutableArray *productIdentifierList;
@property (nonatomic, retain) NSMutableArray *productDetailsList;
@property (nonatomic, retain) NSMutableArray *transactionHistory;
- (void)requestProductData;
- (void)completeTransaction: (SKPaymentTransaction *)transaction;
- (void)restoreTransaction: (SKPaymentTransaction *)transaction;
- (void)failedTransaction: (SKPaymentTransaction *)transaction;
- (void)recordTransaction: (SKPaymentTransaction *)transaction;
- (void)provideContent: (NSString *)productIdentifier;
@end
我已努力使从头开始的所有规定,并且没有资源问题不在于,也许这与内存管理有关,但我无法弄清楚。
奇怪的是它适用于我的3.1.3而不是4.2.1。
请帮助...
我还尝试制作新的配置文件,并启用了应用内功能。没有用! 请尽量帮忙。 – user1020875
我认为这可能与prev有关。版!我也必须安装prev。在使用storekit安装新程序之前,我的程序的版本。 (在这种情况下,以前的版本意味着Storekit版本实施之前的版本) – NicTesla