app-store - purchases - test in app purchase




続行をタップしてサインインしてダウンロードを確認します。 (5)

時々、私はテキストと非常に迷惑なダイアログを取得します: "続行し、ダウンロードを確認するためにサインインします。 ログインして(サンドボックスユーザーで)、[キャンセル]をタップすると、すぐにダイアログが再度表示されます。

私は非更新購読および非消耗品を使用しています。

任意のアイデアは、このダイアログを取り除く方法は?

ありがとう

/マーティン


2017年にはまだ存在!

サンドボックスの不具合のように見える:サンドボックスのユーザーアカウントからログアウトしても何かがIDを覚えていて、そのユーザーの不完全なトランザクションがポップアップし続ける。

私はこれらをクリアする:

  • プロンプトが表示されたら問題のユーザーとしてログインし、
  • このユーザーのAppで「購入を復元する」機能を実行しています(プロンプトが表示されたら資格情報を再入力してください)。

これにより、不完全なトランザクションがすべて消去され(購入の復元機能が正しい場合)、その後の実行時にメッセージが表示されなくなります(サンドボックストランザクションがもう一度不完全なままになるまで...)


コンセンサスは次のようなものです:

  • iOS 6で問題が発生しました
  • Apple IDを持つ設定でログインしていないと表示されません。
  • 飛行機モードをオンにして、設定でログインしているApple IDをログアウトしてから、飛行機モードを約15分間放置すると、しばらくの間メッセージが停止します。
  • デバイスをワイピングして復元しても、それは消えません。
  • 誰かがこれについてのバグを提出し、Duplicateとマークされたので、Appleはこの問題を認識しているようだが、まだそれについて何もしたくない。
  • あなたのデバイスが1つのIDを持つサンドボックスにログインし、別のIDを持つライブストアにログインしてしまうことが予想されます。 アプリ内購入をテストする場合は、テストを開始する前にメインIDからログアウトしてください。

この問題についてもう少し議論があります:

https://discussions.apple.com/message/21492551?ac_cid=tw123456#21492551

https://discussions.apple.com/thread/4412889?tstart=0


私のために修正したものは、kgaidisの答えに似ていましたが、これをもっと簡単にするために、私は複数のSKPaymentQueue.defaultQueue()。finishTransaction(!SKPaymentTransactionとしてのトランザクション)

updatedTransactions関数の購入済み状態に変換します。 私は約20をそこに置き、アプリを走らせた。 アプリの購入でいくつかのサンドボックスが消えた後、問題はなくなりました。


私はそれを最も簡単な方法で修正しました。 AlertViewが表示されたら、[続行]をクリックしてそのアカウントでサインインします。 (私の場合は、私のiTunesConnectのテストユーザーのリストから削除された古いアカウントも保存していました)。 私はInAppPurchaseをテストしていた5〜6つのアカウントの警告を受けましたが、すべてのアカウントでサインインした後はもう取得しません。 うまくいけば、これが役に立ちます。


追加した

[[SKPaymentQueue defaultQueue] restoreCompletedTransactions];

私のappDelegate didFinishLaunchingWithOptionsの終わりに私の問題を解決しました。