2009-10-12 11 views
26

scifihifi-iphone (from Github)を使用して、ユーザー名とパスワードを格納および取得しようとしています。私はクラスSFHFKeychainUtilsを追加するときしかし、私は、次のエラーを取得:Apple Keychainはどのように使用しますか?

"_kSecAttrAccount", referenced from: 
     _kSecAttrAccount$non_lazy_ptr in SFHFKeychainUtils.o 
    "_SecItemDelete", referenced from: 
     +[SFHFKeychainUtils deleteItemForUsername:andServiceName:error:] in SFHFKeychainUtils.o 
    "_kSecReturnAttributes", referenced from: 
     _kSecReturnAttributes$non_lazy_ptr in SFHFKeychainUtils.o 
    "_kSecClass", referenced from: 
     _kSecClass$non_lazy_ptr in SFHFKeychainUtils.o 
    "_kSecClassGenericPassword", referenced from: 
     _kSecClassGenericPassword$non_lazy_ptr in SFHFKeychainUtils.o 
    "_SecItemAdd", referenced from: 
     +[SFHFKeychainUtils storeUsername:andPassword:forServiceName:updateExisting:error:] in SFHFKeychainUtils.o 
    "_kSecAttrLabel", referenced from: 
     _kSecAttrLabel$non_lazy_ptr in SFHFKeychainUtils.o 
    "_SecItemUpdate", referenced from: 
     +[SFHFKeychainUtils storeUsername:andPassword:forServiceName:updateExisting:error:] in SFHFKeychainUtils.o 
    "_kSecAttrService", referenced from: 
     _kSecAttrService$non_lazy_ptr in SFHFKeychainUtils.o 
    "_kSecReturnData", referenced from: 
     _kSecReturnData$non_lazy_ptr in SFHFKeychainUtils.o 
    "_SecItemCopyMatching", referenced from: 
     +[SFHFKeychainUtils getPasswordForUsername:andServiceName:error:] in SFHFKeychainUtils.o 
     +[SFHFKeychainUtils getPasswordForUsername:andServiceName:error:] in SFHFKeychainUtils.o 
    "_kSecValueData", referenced from: 
     _kSecValueData$non_lazy_ptr in SFHFKeychainUtils.o 
ld: symbol(s) not found 
collect2: ld returned 1 exit status 

は、私が何を残していますか?エラーをクリックすると、コード内のどこにも移動しません。

+0

リンカーエラーのようです。あなたのコードがKeychainで何かをやったのはこれが初めてですか? –

+0

Keychainフレームワークも追加しましたか? – jantimon

+0

私のアプリにKeychainフレームワークを追加するにはどうすればいいですか? – Jason

答えて

76

Security.frameworkを追加してから再構築してください。時々私はきれいにしてから再建しなければならないことが分かります。

これを追加するには、Xcodeでターゲットを右クリックし、次にAdd-> Existing Frameworksを選択し、Security.frameworkを選択(またはナビゲート)します。

+0

ありがとう、それは素晴らしいです。私は明らかに存在しないKeychain.frameworkというフレームワークを探していました。 – Jason

+0

同じエラーが発生した場合、あなたの回答は完全に機能しました。ありがとう –

+1

私の問題は解決しましたが、Security.frameworkをFinderからプロジェクトにドラッグしてXCode 4.2のライブラリとのリンクを追加する必要がありました(追加したフレームワークが見つからないようです)。 –

関連する問題