江戸一番のジャスタウェイ職人のブログ

江戸一番のジャスタウェイ職人

Swiftでいい感じにKeychain使う

2014/11/30追記 このコードをプロジェクト内で使うだけではリリールビルド時(Swiftコンパイラの最適化オプションが有効な時)に動きません、KeyClipを使いましょう。


JSONシリアライズとかもしない低レイヤーな実装です。

ググって出てきたサンプルをベースにいくらかアレンジしています。

Keychainの仕組み自体は Cocoaの日々: [iOS] Keychain Services とは で解説されている情報を参考にしました。

利用

普通はパスワードやアクセストークン単体を保存するのに使いますが、Justaway for iOSではTwitterアカウントのアクセストークン含むアカウント情報をJSONシリアライズして保存します。

AccountService クラスなど作り、そこから KeychainService を使うという形式が良いと思います。

補足

kSecAttrService 及び kSecAttrAccessGroup は省略可能

省略出来る指定は省略しています、kSecAttrAccessGroup を指定する場合はプロビジョニングファイルで定義される App Identifier と前方一致しないとエラーになるので気をつけましょう