まとまりのないブログ

something which something is something

swift 雑記・雑学

swift – itunes store にサインイン画面が何度も表示される

投稿日:

iPhoneアプリ開発中にStoreKitの購入処理をデバッグしていたら、アプリ起動時にサインインを求められる画面が表示されるようになった。これが表示されるようになった原因は、直前の購入処理がうまくいかず、購入の処理が終わってないことが原因だと思われる。トランザクションの終了処理が未実行となっているのだと予想。

だが、アプリ起動時にいきなりストアへのサインイン画面が呼ばれるというのがわからない。何のメソッドが呼ばれてサインイン画面が表示されているのかというのがわからないので手の打ちようがない。アカウントをテストユーザーでサインインしていたが、別のテストユーザーでサインインしたところ起動時のサインイン画面には前のユーザー名が表示されて消えないという現象も確認した。

現在のトランザクションの数を数えてみる。下記がレストア終了した後に呼ばれるメソッドでキューの数をコンソールに表示してみたら6という数字になった。おそらくこれが原因で起動時にサインイン画面が表示されていたのではないかと思う。

    func paymentQueueRestoreCompletedTransactionsFinished(queue: SKPaymentQueue!) {

        print(queue.transactions.count)

    }

溜まったトランザクションに対して終了処理を実行する。とりあえず上記メソッドに一回だけ下記のようなコードを追加・実行する

    func paymentQueueRestoreCompletedTransactionsFinished(queue: SKPaymentQueue!) {
        
        for transaction:SKPaymentTransaction in queue.transactions{
            SKPaymentQueue.defaultQueue().finishTransaction(transaction)
        }
        
        print(queue.transactions.count)
    }

上記を実行すると溜まっていたトランザクションはとりあえず消える。で、再度アプリを起動させてみたところ、やはりサインイン画面は消えなくて相変わらず表示される。その後サインアウトしたり別のアカウントでサインインしてみたりとやっているうちに、起動時に表示されていた意味不明のサインイン画面は表示されなくなった。結局、明確な解決方法はわからずじまい。未終了のトランザクションが溜まっていてそれを削除したのは関係がありそうだけれども、なんとも言えない。

-swift, 雑記・雑学

執筆者:


comment

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)

関連記事

no image

レンタル VPS を試してみた

conoHa VPS 1ヶ月無料で使えるというらしいクーポンをもらえたので試してみた。コースは一番安いメモリ512MB,CPU1コア,SSD20GBというやつを。初期費用無料と最低利用期間無しというの …

no image

cardinitialize failed!!

シグマリオン2に無線lanのCFカードアダプタを挿入したら、ERROR cardinitialize failed!! と怒られるようになってしまった。初期化に失敗、ということらしい。その後はOKボタ …

no image

シンプルな家計簿(仮) バージョン0.940公開

シンプルな家計簿 バージョン0.940はこちらから https://www.crossdrive.net/wp/software/cdn-01 バージョン0.940の変更点は主にホームタブ画面の再構成 …

no image

No space left on device デバイスに空き領域がありません

Ubuntuサーバーでファイルをmvしようとしたとき、No space left on device となってファイルの移動コマンドを受け付けないようになってしまった。移動できない場合の原因として主な …

no image

眼鏡のフレームが折れたんで修理した

私の母親の老眼鏡が不注意により折損したというので修理を試みた。折れた場所は眼鏡のフレームの中心部分を真っ二つ。折れた箇所の断面積が少ないので単に接着剤を付けて固定しただけでは強度が出ない。側面に補強す …