2016-09-14 107 views
6

嗨我的代码是完全在Xcode 7.x.x使dyld:找不到符号:_kABPersonAddressCityKey XCODE 8问题

只要我更新了我的Xcode我得到这个问题,请给我这个解决方案运行。

详情:

使dyld:找不到符号: /var/containers/Bundle/Application/0A16B18D-CB72-4FCA-94F7-422AFD1411AD/ABCD.app/ABCD 预期:_kABPersonAddressCityKey从引用:/System/Library/Frameworks/PassKit.framework/PassKit在 /var/containers/Bundle/Application/0A16B18D-CB72-4FCA-94F7-422AFD1411AD/ABCD.app/ABCD

回答

1

有两件事情,可能会解决您的问题:

1,打开你的目标 - >生成阶段 - >链接二进制与图书馆 - >添加AddressBook.framework

2- 通讯录框架在iOS版9弃用很显然,如果你在编译代码的应用程序会崩溃Xcode 8并在iOS 9或更低版本的设备上运行。

我建议迁移到通讯录框架和/或有预处理宏建时,iOS上的10

来源不包括地址簿框架代码:https://github.com/OceanLabs/iOS-Print-SDK/issues/257

27

添加PassKit.framework到您的链接二进制库在您的构建阶段并将其设置为状态Optional

enter image description here

+0

它工作!谢谢 –

+0

有人能够解释为什么这是必要的吗?据我所知,PassKit是一个系统框架,它应该已经存在于所有iOS设备上,因此它并不是连接它的必要条件。 –

+0

这没有奏效。 'xCode 8.3.3'中发生同样的错误 – Ionut

0

保罗Senabre的解决方案为我,谢谢你,谢谢你,谢谢你!这一直让我疯狂!

添加PassKit.framework解决了,但问题,,但一定要将其添加到您的所有目标!当你添加它时,它只会影响你当前的目标。顺便说一句,我的iOS-8目标应用在Xcode-8中运行良好,但会在iOS-10之前崩溃。

相关问题