将凭据保存到iPhone钥匙串的教程?

时间:2013-03-18 23:26:09

标签: iphone sdk keychain

我一直在寻找有关如何访问并保存到iPhone的钥匙串的UPDATED教程,但似乎找不到任何不会给我带来大量错误,并使用弃用的代码。

如果有人愿意指引我走向正确的方向,那就太棒了!

谢谢!

这是我得到的错误:

    Undefined symbols for architecture armv7s:
  "_kSecValueData", referenced from:
      -[MainViewController viewDidLoad] in MainViewController.o
  "_kSecAttrAccount", referenced from:
      -[MainViewController viewDidLoad] in MainViewController.o
  "_kSecAttrAccessibleWhenUnlocked", referenced from:
      -[MainViewController viewDidLoad] in MainViewController.o
  "_kSecAttrAccessible", referenced from:
      -[MainViewController viewDidLoad] in MainViewController.o
  "_OBJC_CLASS_$_KeychainItemWrapper", referenced from:
      objc-class-ref in MainViewController.o
ld: symbol(s) not found for architecture armv7s
clang: error: linker command failed with exit code 1 (use -v to see invocation)

2ND错误:

Undefined symbols for architecture armv7s:
  "_OBJC_CLASS_$_KeychainItemWrapper", referenced from:
      objc-class-ref in MainViewController.o
ld: symbol(s) not found for architecture armv7s
clang: error: linker command failed with exit code 1 (use -v to see invocation)

1 个答案:

答案 0 :(得分:3)

有点过时,但我们仍然使用Apple的Generic Keychain wrapper

这里还有一个Gist这个类已经为ARC更新了(我没有亲自使用过,但看起来很有希望)。

祝你好运。

编辑

根据此错误消息,您确定要链接Security框架吗?如果没有,请按以下方式进行:

1)点击你的项目(左侧导航栏上的蓝色栏)

2)点击你的目标

3)单击“构建阶段”选项卡

4)点击“Link with Binary Libraries”展开

5)点击左下角的“加号”

6)添加标题为Security.framework

的框架

编辑2

您是否确保将#import KeychainItemWrapper.h放入MainViewController的标头或实施文件中?

如果是,您是否可以验证目标的构建阶段中确实包含KeychainItemWrapper.m - >编译源? (如果不是,您可以通过左下角的“加号”添加它。)