2011-08-16 11 views
4

現在、私はアプリケーション内購入が必要なiOSアプリケーションを開発中です。アプリ購入サンドボックス問題

多くのチュートリアル(http://www.raywenderlich.com/2797/introduction-to-in-app-purchasesなど)のように。私はiTunesConnectで新しいアプリケーションを作成し、バイナリをアップロードして拒否しました。その後、私はいくつかのアプリケーションを購入する製品を追加しました。次のステップでは、私は私のXcodeプロジェクトにStorekitを追加し、その後、私は私のUIViewControllerでこのコードを書いた:

- (void)buyPressed 
{ 
    SKProductsRequest *request= [[SKProductsRequest alloc] initWithProductIdentifiers: [NSSet setWithObjects: @"com.mycompany.appliaction_name.levelpack",nil]]; 
    request.delegate = self; 
    [request start]; 
    NSLog(@"request started"); 
} 

- (void)productsRequest:(SKProductsRequest *)request didReceiveResponse:(SKProductsResponse *)response 
{ 
    NSArray *products = response.products; 
    for (int i=0; i<[products count]; i++) 
    { 
     SKProduct *proUpgradeProduct = [products objectAtIndex:i]; 
     if (proUpgradeProduct) 
     { 
      NSLog(@"Valid product id: %@" , proUpgradeProduct.price); 
      NSLog(@"Product title: %@" , proUpgradeProduct.localizedTitle); 
      NSLog(@"Product description: %@" , proUpgradeProduct.localizedDescription); 
      NSLog(@"Product price: %@" , proUpgradeProduct.price); 
      NSLog(@"Product id: %@" , proUpgradeProduct.productIdentifier); 
     } 
    } 

    for (NSString *invalidProductId in response.invalidProductIdentifiers) 
    { 
     NSLog(@"Invalid product id: %@" , invalidProductId); 
     UIAlertView *myAlertView = [[UIAlertView alloc] initWithTitle:@"Apple connection error!" message:nil delegate:self cancelButtonTitle:@"CLOSE" otherButtonTitles:nil]; 
     [myAlertView show]; 
     [myAlertView release]; 
    } 
} 

をそして、私はまだ、すべての私のアプリでは製品が無効な製品IDを持っているという情報を受け取ります。今日は私がこれを見つけました:http://developer.apple.com/library/ios/#technotes/tn2259/_index.html

重要:重要な点:アプリケーションの承認が承認されるまで、開発バイナリをiTunes Connectにアップロードしないでください。バイナリがiTunes Connectに存在し、それがApp Reviewは、バイナリをレビューし、開発バイナリを拒否する可能性があります。あなたまたはApp ReviewがiTunes Connectで最新のバイナリを拒否した場合のApp In Purchaseのテストは失敗します。 App Reviewで承認されるApp Purchase機能。バイナリが承認されたら、In App Purchase機能でバイナリのテストを再開します。 "

iTunesで新しいアプリをもう一度作成する必要がありますか、アプリを購入することなくアプリケーションをビルドして提出する必要があります。

ありがとうございました!

答えて

2

invalidProductIdentifiers(AppleのApp Storeで認識されなかった製品の識別文字列の配列。(読み取り専用))

だから、あなたが同じ製品IDたを使用していないことを確認してください

デバイスを切断してからXcodeを実行し、[ビルド - >すべてのターゲットをクリーンアップ]を実行します。

Xcode-> Empty Cachesを実行し、Xcodeを終了して再起動します。

Xcodeを再起動してデバイスを再起動した後、再接続します。

全く新しいiTunesテストアカウントをiTunesConnectポータルで作成します。

開発プロファイルを使用してアプリケーションをXCodeからデバイスにビルドして実行し、新しいiTunesテストアカウントを使用して製品を購入しようとします。

アプリケーションを提出し、何らかの理由でバイナリが拒否された場合、アプリ内購入はサンドボックスで正しく機能しなくなる可能性があります。 Appleは、これを復元する唯一の方法は、IAPの機能を持たないアプリバイナリを再提出し、最初に承認されるようにすることです(必ずしもリリースする必要はありません)。私の別の関連[ANSWER]

+0

私は、結果として新しい識別子で新しい製品を作成したことを知っていますが、全く変更はありません。 –

+0

さて、アプリを削除してみましたが、再度インストールしてください。アプリストアからアプリがインストールされている可能性があり、StoreKitフレームワークに正しく登録できない場合があります。が発生しています。 –

+0

はい、試しました。もちろん私は新しいユーザー(通常ユーザーとテストユーザー)として登録しようとしました。私も既存のアプリにアプリの購入を追加しようとしましたが、結果はまったく同じで、iTunesのすべての契約が正しく署名されています。何か案が? –

1

ルックはちょうどこの瞬間に別の事は私のために助けた:アプリの新バージョンのバージョン情報の変更(変更)を行います。しかし、私は上記のキャッシュクリーニング/デバイスの再起動も行いました。

関連する問題