2

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

如果有人能引导我走向正确的方向,那就太棒了!

谢谢!

这是我得到的错误:

    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)

第二个错误:

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)
4

1 回答 1

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确实包含在您的目标的构建阶段 -> 编译源中?(如果不是,您可以通过左下角的“加号”添加它)。

于 2013-03-18T23:34:25.650 回答