2016-06-28 2 views
0

SwaggerがSwift Clientを使用しています。これはNSURLCredentialsを使用してサーバーで認証します。持続型を使用しています.Permanent 私のアプリは、バックグラウンドでサーバと通信し、電話をロックするときを除いて正常に動作します(ログに401エラーが表示されます)。電話がロックされている場合、NSURLCredentialはキーチェーンにアクセスできないと思います。 kSecAttrAccessibleAfterFirstUnlockを使用して、キーチェーンへのアクセスを有効にする方法について説明した記事があります。私はNSURLCredentialでこれを行う方法を理解することができませんでした。どのようにしてこれを設定できるのか誰にも知られていますか?iOSデバイスがロックされているときにNSURLCredentialsへのアクセスを有効にするにはどうすればよいですか?

答えて

0

はい、これはまさに起こっていることです。おそらくそうです。

  • 基本となるキーチェーンアイテムを削除し、デバイスのロックが解除されているときにアクセス可能にする必要があることを指定して再作成します。そのアプローチでは、NSURLCredentialをまったく使用する必要はありません。 Keychain Services APIを使用してインターネットパスワードアイテムを作成すると、資格情報ストアが自動的にそれを取得します。
  • メモリにクレデンシャルデータを保存し、セッションデリゲート(またはそのAPIを使用している場合はNSURLConnectionの同等のメソッド)にURLSession:task:didReceiveChallenge:completionHandler:デリゲートメソッドを実装して、尋ねられたときにクレデンシャルを提供します。
関連する問題