2011-10-30 140 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

相關問題