dyld:找不到符号:_NSURLAuthenticationMethodClientCertificate尝试运行iOS应用程序时

时间:2014-06-04 17:10:40

标签: ios objective-c xcode frameworks cfnetwork

我的应用程序崩溃了消息:

  

dyld:未找到符号:_NSURLAuthenticationMethodClientCertificate
  参考自:   在/ var /移动/应用/ C7B596AD-FB09-4685-BDFC-7E955A5DD185 / IRON   TRAINERS.app/IRON培训师预计:   /System/Library/Frameworks/CFNetwork.framework/CFNetwork in   在/ var /移动/应用/ C7B596AD-FB09-4685-BDFC-7E955A5DD185 / IRON   TRAINERS.app/IRON TRAINERS(lldb)

当我尝试构建并运行时。当我从我的项目中删除CFNetwork时,它可以工作,我不知道为什么。

我刚刚安装了Xcode6Beta并打开了我的项目。它在Xcode5.1上运行良好。

更新:

在使用Xcode 6的iOS模拟器上运行正常,问题出在运行iOS 7.1.1的设备上。

更新2:

下面选择的答案对我有用,虽然我已经将基础框架显式添加到我的项目中,但我必须将其删除并再次添加。至少现在问题已经解决了。 :)

10 个答案:

答案 0 :(得分:87)

编辑包含您需要采取的两个可能步骤:

  1. 确保您的项目拥有Foundation框架。 (去掉 并再次添加以确保)。
  2. 确保Foundation框架包含之前的 CFNetwork。
  3. 似乎有一个变化,哪个标题包含iOS8.0中的内容(例如,glextensions文件不再位于顶部标题中)。如果您明确地将Foundation框架添加到您的项目中,它将构建正常。当然,使CFNetwork成为可选项会导致失败,并且只是构建错误的解决方案,而不是整体解决方案。

    enter image description here

答案 1 :(得分:38)

我与UIAlertAction

有类似的问题
  

dyld:未找到符号:_OBJC_CLASS _ $ _ UIAlertAction     参考自:/ var / mobile / Applications / .... app / ...     预期在:/System/Library/Frameworks/UIKit.framework/UIKit    在/ var / mobile / Applications / .... app / ...

UIKit.frameWork Optional解决了我的问题。在你的情况下,我猜,让你的CFNetwork.framework optional也可以解决你的问题。

Make your <code>CFNetwork.framework</code> optional

答案 2 :(得分:16)

XCode中的重新排序没有做到这一点;我正在使用Cocoapods,它创建了一个Pods.xcconfig文件。这有一个OTHER_LDFLAGS行。我把-framework Foundation作为第一个条目,这使我的项目有效。

OTHER_LDFLAGS = -framework Foundation -ObjC …

(请注意,每次pod update时都会重新生成此文件。)

答案 3 :(得分:11)

重新排序您的框架以在CFNetwork之前拥有Foundation。

这是对Xcode 6中显然是一个错误的事情的临时修复。

答案 4 :(得分:6)

我在WWDC遇到了这个问题。我和一些苹果工程师交谈过,他们告诉我这是SDK中的一个错误,它是在CFNetwork&amp;基金会,并将在下一个版本中解决,很快就会到期。在某些情况下,你可以通过玩导入订单框架来解决它,但它并不总是有效。

答案 5 :(得分:1)

我发生过几次简单的清洁(移位+ cmd + K)就可以了。

答案 6 :(得分:1)

我遇到了类似的错误: dyld:未找到符号: _NSDictionary0 通过链接: 我将相关项目的部署目标重置为相同的值:8.0,然后就可以了。可能在ios9.0和ios8.0中有所改变,所以如果我们想要兼容8.0,我们应该让相关的项目知道。

dyld: Symbol not found: ___NSDictionary0__ when using google ServiceGenerator binary with discovery docs in XCode 7 & iOS target 9.0

答案 7 :(得分:0)

让CFNetwork.framework可选,它对我有用

答案 8 :(得分:0)

就我而言,这是当我使用CocoaPods更新了第三方库时发生的。


只需清除构建文件夹即可 K

答案 9 :(得分:0)

就我而言,我有一个与 Apple 内部框架 AuthKit 同名的框架。所以在运行时它试图在我的 AuthKit 框架而不是苹果的框架中查找符号 AKAppleIdSession。从而导致崩溃,错误 Symbol not found