1

アプリ内購入でアプリケーションをテストしようとしています。機能を作成し、ユーザーをテストし、iPhone で iTunes からログアウトし、開発者証明書を使用しました。デバッグ モードで XCode からアプリをロードします。

「購入」ボタンをクリックすると、インターネットの可用性に関するすべてのチェックに合格し、canMakePayments を呼び出して呼び出します

SKPayment *payment = [SKPayment paymentWithProductIdentifier:featureId];
[[SKPaymentQueue defaultQueue] addPayment:payment];

しかし、私が見るのはすべて保留中のビューであり、数分後に失敗しました

- (void) failedTransaction: (SKPaymentTransaction *)transaction
{   
    if (transaction.error.code != SKErrorPaymentCancelled)      
    {       
        NSLog(@"failedTransaction");
    }   
    [[MKStoreManager sharedManager] paymentCanceled];
    [[SKPaymentQueue defaultQueue] finishTransaction: transaction]; 
}

問題を解決するためにどの方向に進むべきか、他に何を確認する必要があるかについてアドバイスをお願いします。

PS SOに関するすべての関連する質問は、運が悪かったためにチェックされました。

4

1 に答える 1

0

ここにいくつかのアイデアがあります:

  1. ユーザーが購入できるようにする前に、製品をロードします。最初に行う必要があるのは SKProductsRequest で、提供している製品が購入できることを確認します。

  2. エラーを識別します。SKError.h をチェックして、ストアが返す可能性のあるさまざまな種類のエラーを確認します。これにより、何が起こっているのかがより明確になります。

  3. -1003 などの一部のエラーは文書化されておらず、サンドボックス環境では奇妙なケースのようです。

  4. これらのエラーについては、次のことを確認してください。

    • 正しいテスト ユーザーを使用します。
    • iTunes Connect で製品を適切に構成しました。
    • ストアからログアウトし、アプリをクリーン インストールします。購入確認ポップアップでログインを求められた場合にのみログインしてください。
    • これが失敗した場合は、ネットワーク設定をリセットし、アプリをクリーン インストールして、もう一度テストします。
    • これが失敗した場合は、すべての設定をリセットし、アプリをクリーン インストールして、もう一度テストします。
    • これが失敗した場合は、デバイスをリセットし、アプリをクリーン インストールして、もう一度テストします。

最後に、次のページをご覧ください。

http://troybrant.net/blog/2010/01/invalid-product-ids/

http://troybrant.net/blog/2010/01/in-app-purchases-a-full-walkthrough/

于 2011-07-20T02:57:47.550 に答える