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

私はそれが以前のものと関係があるかもしれないと思います。バージョン!私も前のバージョンをインストールしなければなりませんでした。私のプログラムの新しいバージョンをストアキットにインストールする前に。 (前のケースでは、Storekitが実装される前のバージョンを意味します) – NicTesla

答えて

0

StoreKitのAPIは4.2でデバイス上で動作しますので、あなたは、デバイスでそれを実行しようとしなければなりません。 3.1 iosシミュレータバージョンでは動作しませんでしたが、ios5 Simulatorではios5 Simulatorのバグかもしれないと思うし、新しい機能を追加しようとしています。 しかし、アップルのサイトでは、StorekitはDeviceでのみ動作すると述べています。

だから、あなたは同じデバイスを使ってプロジェクトをビルドしてみてください。

+0

これはもう完全に真実ではありません。 iOS 5.0シミュレータでAppleから製品を入手して購入することはできますが、iOS 4ではできません。 – Gomfucius

関連する問題