サンドボックスアカウントで行き詰まった
-
22-09-2019 - |
質問
アプリの購入をチェックインするためのテスト アカウントを作成しました。購入できて購入成功でした。その後、ナビゲーションにバグを発見しました。バグを修正し、別のアカウントを作成し、前のセッションでログインしたアカウントを削除しました。アプリストアはすでに存在しないゴーストアカウントで自動的にログインするため、アプリ内購入をテストできなくなりました。各デバッグ セッションの前に、設定でストアからサインアウトし、アプリケーションの以前のバージョンを削除しているにもかかわらず、パスワードの入力のみを求められます。これをリセットするにはどうすればよいですか?
ありがとう、
ナバ
解決
私は、これは古い話題ですけど、私はどこでもそれを見つけることができませんでしたので、私はここでそれを共有するだろうと思ったので、私は解決策を考え出したまで、私はトラブル解決策を見つけることだったし、いくつかの退屈でつまらない試行錯誤を経て他ます。
まず、あなたが呼び出すすべてのトランザクションの後に確認してください
[[SKPaymentQueue defaultQueue] finishTransaction:transaction];
どのような私の場合で起こったことは私は別のサンドボックスに切り替えても、それはまだ私の古いアカウントのパスワードを要求し続けアカウントトランザクションが終了し、キューに滞在していなかったということです。
それを修正するために私がコメントを追加しました:
SKPaymentQueue *queue = [SKPaymentQueue defaultQueue];
for (SKPaymentTransaction *transaction in queue.transactions) {
[[SKPaymentQueue defaultQueue] finishTransaction:transaction];
}
私は、トランザクションオブザーバを追加する前に、すなわちこの:
[[SKPaymentQueue defaultQueue] addTransactionObserver:self];
また、
で(void)paymentQueue:(SKPaymentQueue *)queue updatedTransactions:(NSArray *)transactions
この関数は、私はこのコード行を追加します:
[queue finishTransaction:transaction];
switch文のSKPaymentTransactionStateRestoredとSKPaymentTransactionStateFailed例では、。あなたは、私が知っていることから、その上のコール仕上げに許可されていませんので、購入状態にそれを追加しないでください。
私はそれをパワーダウンし、アプリを削除して、クリーンな再構築/それが最終的に私を求めて停止したことをインストールしなかった、私のiPhoneからログアウトするまでそれが持続するので必ず上記の手順2のどちらがバグを修正していませんよ盗聴アカウントのパスワード。これは誰かに役立ちます願っています。
EDIT:(11/12/15)
だから私は、サンドボックスのアカウントを破るの原因を見つけました。これは、クラッシュの原因となったもう一度復元ボタンを再開し、打つ、その後、ホームキーを押す、購入を復元した後に起こりました。復元キューに滞在し、上記のプロセスは、パスワードを尋ねるポップアップから抜け出すための唯一の方法でした。
それを止めるために、私が追加しました:
[[SKPaymentQueue defaultQueue] removeTransactionObserver:self];
applicationDidEnterBackgroundによって呼び出されたティアダウン機能(:)私のメインビューコントローラのことでに私は私のアプリ内購入マネージャオブジェクトをnil'd前に。私は何が起こっていたことは、私は複数回のトランザクションオブザーバーとしてオブジェクトを追加したことであり、それは奇妙な行動を起こしていたと思います。その様子からは、これは私が再びエラーを再作成することができていないので、問題を完全に固定しているようです。
他のヒント
私も同じ問題を抱えていました。これが私の問題を解決したものです:
- 設定 -> リセット -> すべての設定をリセット
- 設定 -> iTunes と App Store -> サインアウト
- アプリを削除する
- XCodeからアプリを再起動します
アップデート:問題は、コードに次の行がないことだと気づきました。
[[SKPaymentQueue defaultQueue] finishTransaction:tran];
これは、私の古いトランザクションが完了しておらず、iPhone が以前に発生した古いトランザクションを完了しようとしていたことを意味します。この行をコードに追加すると、古いユーザー パスワードの要求は発生しなくなります。
あなたが設定アプリに行く場合でも、ということを意味するので - >ストア - >あなたがまだ前のテストアカウントからユーザ名を取得し、ログアウト?また、あなたのデバイスからアプリを削除しようとしましたか?私のために同様の問題が修正されていること。