Swiftで安心してKeychain使うライブラリKeyClip
前回 Swiftでいい感じにKeychain使う - 江戸一番のジャスタウェイ職人のブログ でスニペットを紹介しました。
しかし現行のSwift1.1でKeychainを使うには罠があり、Optimization levelがFastestな状態でコンパイルすると値の読み込みが失敗しプロセスが落ちます。
参考: FastestでKeychain読み込み出来ない件
- ios - Swift keychain and provisioning profiles - Stack Overflow
- iOS - SwiftでKeychainに保存したデータが取れないときに確認すること - Qiita
しばし絶望に打ちひしがれました..勢い余ってXcode 6.1.1(GM)でも試しましたがやはりダメ...
「Fastest使いたいしObjective-Cかぁ...ウッ」
Dynamic framework
しかし最近話題のCarthageを使い、Dynamic frameworkとしてOptimization levelがNoneでビルドしたKeychainライブラリとして使ったところ、アプリ本体はFastestでも動作確認できました。
よほど頻繁にKeychainにアクセスしない限りはこれがベストな解決策ではないでしょうか。
できたライブラリはこちら KeyClip
参考: Carthage
Carthage: Swift対応の新しいライブラリ管理