dyld: 符号未找到:_kABPersonAddressCityKey XCODE 8问题

6

你好,我的代码在xcode 7.x.x中运行得非常完美。

只要我更新了xcode,我就会遇到以下问题,请给我提供解决方案。

细节如下:

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

3个回答

29
PassKit.framework添加到您的Build Phases中的Link Binary With Libraries,并将其Status设置为Optional

输入图像描述


有人能解释一下为什么这是必要的吗?据我所知,PassKit是一个系统框架,应该已经存在于所有iOS设备上了,因此没有必要链接它。 - Oliver Pearmain
这个没起作用。我在 xCode 8.3.3 中遇到了同样的错误。 - Ionut Necula

1
有两件事可能会解决您的问题:
1- 打开您的目标 -> Build Phases -> Link Binary With Libraries -> 添加AddressBook.framework
2- AddressBook框架在iOS 9中已被弃用。显然,如果您在Xcode 8上编译代码并在iOS 9或更低版本的设备上运行,则应用程序将崩溃。
我建议迁移到Contacts框架和/或具有预处理器宏,在iOS 10上构建时不包括AddressBook框架代码。
来源:https://github.com/OceanLabs/iOS-Print-SDK/issues/257

0

Paul Senabre的解决方案对我有用,谢谢,谢谢,谢谢!这让我头疼了很久!

添加PassKit.framework解决了问题,但请确保为所有目标都添加它!当你添加它时,它只影响当前目标。顺便说一句,我的应用程序使用iOS-8作为目标,在Xcode-8中与iOS-10良好运行,但在iOS-10之前的任何版本上都会崩溃。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接