dyld:未找到符号:__TWPVs11AnyHashables20_AnyHashableProtocols

时间:2017-04-04 15:13:38

标签: ios objective-c swift xcode alamofire

我的应用程序在我将XCode更新为8.3并且出现以下错误后开始崩溃:

  dyld: Symbol not found: __TWPVs11AnyHashables20_AnyHashableProtocols
  Referenced from: /Users/faidmit/Library/Developer/CoreSimulator/Devices/C7E102B3-69B4-42EC-A699-0D2FDF768A86/data/Containers/Bundle/Application/341C0D73-B57B-4E30-A639-3A23B1D7CAA6/MVP-INT.app/Frameworks/Alamofire.framework/Alamofire
  Expected in: /Users/faidmit/Library/Developer/CoreSimulator/Devices/C7E102B3-69B4-42EC-A699-0D2FDF768A86/data/Containers/Bundle/Application/341C0D73-B57B-4E30-A639-3A23B1D7CAA6/MVP-INT.app/Frameworks/libswiftCore.dylib

我尝试了什么:

  • 清理并重新启动。
  • 该框架可在Embedded中使用 二进制文件部分。
  • 我已经改变了顺序,以确保它的顺序 最后一个要加载(尝试从提到它的解决方案 CFNetwork应该在基金会等之后。)
  • Made Alamofire可选。

2 个答案:

答案 0 :(得分:2)

对于遇到同样问题的大多数人来说,问题本身提到的步骤可能会起作用(按照相同的顺序)。我所做的是最后的努力。在我刚刚回滚更新之前我想尝试的东西。步骤如下:

  1. 检查项目的Deployment Target(对我来说,这是8.1)
  2. GitHub下载Alamofire并查看Deployment Target(8.0)。
  3. 更改Alamofire的部署目标以匹配项目的部署目标(8.1)。
  4. 在项目中编译并包含生成.framework
  5. 我同意这不是一种普遍的做法。特别是如果你使用豆荚可能会很困难。因为我不是,它对我有用。

答案 1 :(得分:1)

对我来说,删除应用程序的派生数据解决了这个问题。在Xcode 8.3中,这可以通过转到XCode>来完成。偏好>位置。在那里,您将找到导出数据的路径,旁边有一个向右箭头。单击箭头应启动Finder,其中包含派生数据的路径。在那里,您应该查找名称以您的应用名称开头的任何文件夹并将其删除