2012-03-13 8 views
1

失敗:- SKProduct要求は、私はこのコードを実装しています

if ([SKPaymentQueue canMakePayments]) 
{ 
    // Display a store to the user. 
    NSLog(@"Device Can Make Payments"); 
    SKProductsRequest *ProductRequst = [[SKProductsRequest alloc]initWithProductIdentifiers:[NSSet setWithObjects:@"slalomtfcoins", nil]]; 
    ProductRequst.delegate = self; 
    [ProductRequst start]; 
} 
else { 
    // Warn the user that purchases are disabled. 
    NSLog(@"Device Can't Make Payments"); 
    UIAlertView *thealert = [[UIAlertView alloc]initWithTitle:@"Your Device Limited" message:@"we have noticed that you device restrictions setting are currently limited. you can change it ny going to Settings -> General -> Restrictions and turn it off" delegate:nil cancelButtonTitle:@"OK" otherButtonTitles:nil, nil]; 
    [thealert show]; 
    [thealert release]; 
} 



-(void)productsRequest:(SKProductsRequest *)request didReceiveResponse:(SKProductsResponse *)response{ 
SKProduct *VailProduct = nil; 
NSLog(@"%d",[response.products count]); 
int count = [response.products count]; 
if (count>0) { 
    VailProduct = [response.products objectAtIndex:0]; 
    NSLog(@"Products are availble"); 
} else if (!VailProduct){ 
    NSLog(@"Products are Not availble"); 
}  

}

とログプリント "製品がavailbleではないです"。 私のp.listのバンドルIDは正しい で、製品IDはitun​​es接続と同じです。

何が問題ですか?

おかげ

+0

お持ちの場合iTunesの製品を作成しただけで接続することがありますが、テストする前にしばらく時間がかかることがあります。 –

答えて

1

お試しください。

  • ログ
  • 店舗のうちリスト項目
  • はハード
  • お使いのデバイスを再起動し、デバイスからアプリを削除Xcodeでプロビジョニング・プロファイルと デバイス
  • を再ダウンロード後、削除しますアプリをビルドして実行する
  • もう一度試してみてください

おそらく役に立たないかもしれないが、新しいテストアカウントユーザーを作成して試してみてください。あなたの問題は購入ではなく単に検証するだけなので、おそらく役に立たないでしょう。私はちょうどあなたが道にも問題がある場合にそれを言います。

また、これが初めての場合は、アプリIDと商品IDを確認してください。

1

あなたはアプリ内購入使用未発表のアプリケーションのための「的環境・​​サンドボックス」を使用している場合は、あなたが使用するためのXcodeから「的環境を、それを実行する必要が?のXcodeからアプリケーションを実行しています-sandbox "

1

あなたのデバイスが米国の店舗にいない場合は、デバイス内のiTunesにアクセスして店舗を切り替えることで解決できるバグがサンドボックス内にあるようです。あなたのアプリでもう一度購入を試みると、もう一度他の店に変更するよう促すはずです。

また、シミュレータではなくデバイスでテストしていること、またiTunes Connectで作成したテストアカウントを使用していることを確認してください。

0

xCode 4.5.1では、(私が試しているので)iPhone Simulatorをすべてのアプリ内購入プロセスに使用することができます。
少し遅くて時にはタイムアウトになるので、シミュレーションを購入または再試行する必要があります(SimulatorとiPhoneで)。
コードでは、Boolを設定して、購入プロセスが成功した後にTRUEを割り当てることができます。すべてのことがうまくいくことを確認するには、NSLogを使用してください。
その後、あなたはあなたのすべてのニーズにそのブールを使用することができます。

もう一つ:あなたは、製品識別子は、たとえば、完全に正しいことを確認する必要があります:
com.example.myapp.purchase1
com.example.myapp.purchase2
...
は、これらの値を入れてくださいiTunes Connectとあなたのアプリで。

たぶん、あなたは、iTunesの更新のためのほんの少しの時間を待たなければならない(私のために、私はなぜ知らない、待機する時間は本当に短いです:わずか数分またはそれ以下)

関連する問題