アップルが提案したトランザクションのVerificationControllerコードを使用してiOSアプリを更新しています。最近の「ハック」のためにアプリ内購入を確認しています。スプーフィングされたAppleサーバーからの偽の領収書にアプリが実行中にAppleIDを要求しています
私はすべてが統合されており、現在テスト中です。私は何度もアプリを走らせていますし、検証用のものは何度も動いています。
新品の新しいアプリとAppleIDから始めるなど、購入に関するすべてのことをテストしたいと思います。だから私は完全に私のテストデバイスからアプリを削除しました。 iTunes Connectで新しい「テストユーザー」AppleIDを作成しました。私はテストデバイスのSettingsアプリケーションに行き、Storeに行き、デバイスのデフォルトのAppleIDをこの新しく作成したAppleIDに変更しました。
デバッガでXcodeからアプリを再実行します。デバッガは、テストデバイスにアプリケーションを再インストールして新しく実行します。
テストデバイスは、起動直後に、AppleIDパスワードアラートタイプのビューを表示し、元のアプリ内購入を含むすべてのテストに元々使用していた古いAppleIDのパスワードを尋ねます。それに対する検証。ストアの設定アプリで設定したAppleIDの新しいデバイスのパスワードを要求しません。
私は新しいアプリとしてそれを実行すると、検証コードが実行されないとApple StoreKitのもので何かを私のルーチンのいずれかからのコードが孤独
[[SKPaymentQueue defaultQueue] addTransactionObserver:observer];
(オブザーバーを除き実行されませんStoreKitのデリゲートオブジェクトです。作成されますが、init以外のルーチンは実行されません。initは、スタティック変数を設定してシングルトンタイプのクラスを作成する以外は何もしません)
チェック用に、
NSLog(@"in App Delegate, payment queue transactions are %@", [[SKPaymentQueue defaultQueue] transactions]);
これは、古いトランザクションが何も表示されていないことを示しています。
私は、なぜアプリケーションが新しくインストールされたときに元のテストユーザーのAppleIDを要求し始めたのか、そのデバイスのストアのAppleIDが異なっているのか分からないし、 StoreKitにアクセスします(上記の場合を除く)。
これについての洞察は理解できます。
ETA:パスワードダイアログでCANCELをタッチしても、アプリケーションで余分なコードが実行されることはなく、アプリの実行を妨げません。
アプリ内購入の画面(アプリが利用可能なアプリ内購入を問い合わせる)に入ると、OLD AppleIDと同じ方法でパスワードをもう一度尋ねます。私はキャンセルすることができ、何も起こりそうにない。私が実際に自分のアプリで「購入したものを復元する」ボタンをタッチすると、ストア設定で設定された新しいAppleIDのパスワードが尋ねられます。私は何が起こっているのか理解したいと思っているので、新しいAppleIDのもとでリストアや購入を完了/試行することで物事を混乱させたくないので、この時点を過ぎていません。
おかげ
何とか解決しましたか? –
@bluesm私は問題を解決したことがなく、もはや私が問題を抱えていたデバイスを実際に使用していません。ごめんなさい。私は最終的に引き出しにそのデバイスを持っているので、私は最終的にそれを試して戻ってくるかもしれません... – chadbag