2011-10-30 94 views
1

我有一个问题,我解决不了,而且我卡住了。应用内购买适用于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。

请帮助...

+0

我还尝试制作新的配置文件,并启用了应用内功能。没有用! 请尽量帮忙。 – user1020875

+0

我认为这可能与prev有关。版!我也必须安装prev。在使用storekit安装新程序之前,我的程序的版本。 (在这种情况下,以前的版本意味着Storekit版本实施之前的版本) – NicTesla

回答

0

StoreKit API仅在4.2适用于设备,所以你必须尝试在设备来执行它。 虽然在3.1 ios模拟器版本我没有工作,但在ios5模拟器它工作,我认为它可能是ios5模拟器的错误,或他们正在尝试赋予新的功能。 但是在Apple的网站上他们提到storekit只能在Device上运行。

所以你只是尝试相同的b建设你的项目在设备上。

+0

这并非完全正确。我可以在iOS 5.0模拟器上购买和购买Apple的产品,但不能购买iOS 4。 – Gomfucius

相关问题