Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How do I use Apple Keychain?

I am using trying to use scifihifi-iphone (from Github) to store and retrieve usernames and passwords. However, when I add the class SFHFKeychainUtils I get the following errors:

  "_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

What am I leaving out? When I click the errors, it doesn't take me to any place in the code.

like image 431
Jason Avatar asked Oct 12 '09 14:10

Jason


People also ask

What is Apple Keychain and how does it work?

Keychain Access is a macOS app that stores your passwords and account information, and reduces the number of passwords you have to remember and manage. When you access a website, email account, network server or other password-protected item, you may be given the option to remember or save the password.

Is Apple Keychain a good idea?

Do I recommend iCloud Keychain? Well, iCloud Keychain could be a convenient way to save your inessential credentials, but I would never suggest relying on it to protect your sensitive data. For those crucial login credentials it's more advisable to look at a tool like 1Password, LastPass, or Dashlane.

How do I fill keychain passwords?

Step 2: How to autofill passwords on KeychainOpen the Settings app. Scroll down and select the Passwords tab. Select the AutoFill Passwords tab. Make sure the AutoFill Passwords is toggled on (green).


1 Answers

Add Security.framework, then rebuild. Sometimes I find I have to build clean and then rebuild.

To add this, right click on your target in Xcode, then Add->Existing Frameworks and choose (or navigate) to Security.framework.

like image 68
nall Avatar answered Oct 15 '22 03:10

nall