dyld:找不到符号:__TWPVs11AnyHashables20_AnyHashableProtocols
Posted
技术标签:
【中文标题】dyld:找不到符号:__TWPVs11AnyHashables20_AnyHashableProtocols【英文标题】:dyld: Symbol not found: __TWPVs11AnyHashables20_AnyHashableProtocols 【发布时间】:2017-04-04 15:13:38 【问题描述】:当我将 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 应该在 Foundation 等之后) 将 Alamofire 设为可选。【问题讨论】:
我能够通过为与我的项目相同的部署目标构建框架来解决错误。我应该现在删除这个问题还是让它消失? 【参考方案1】:对于大多数遇到相同问题的人来说,问题本身中提到的步骤可能会起作用(以相同的顺序)。我所做的只是最后的努力。在我刚刚回滚更新之前我想尝试的东西。以下步骤:
-
检查您的项目的
Deployment Target
(对我来说,这是 8.1)
从GitHub 下载Alamofire
并检查Deployment Target
(8.0)。
更改 Alamofire
的部署目标以匹配您的项目 (8.1)。
编译并在您的项目中包含生成.framework
。
我同意这不是一种通用方法。这可能很困难,尤其是如果您使用的是 pod。因为我不是,所以它对我有用。
【讨论】:
【参考方案2】:对我来说,删除应用程序的派生数据解决了这个问题。在 Xcode 8.3 中,这可以通过转到 XCode > Preferences > Locations 来完成。在那里,您将找到派生数据的路径,旁边有一个右箭头。单击箭头应该会启动带有派生数据路径的 Finder。您应该在那里查找名称以您的应用名称开头的任何文件夹并将其删除
【讨论】:
不知何故删除派生数据对我不起作用。也没有从库中删除整个 xcode 缓存。很高兴它对你有用。以上是关于dyld:找不到符号:__TWPVs11AnyHashables20_AnyHashableProtocols的主要内容,如果未能解决你的问题,请参考以下文章
SwiftUI dyld:找不到符号:_$s7SwiftUI7BindingVyxGAA0C11ConvertibleAAMc Xcode 11 beta 5
dyld:惰性符号绑定失败:找不到符号:___emutls_get_address
找不到dyld符号? _UIAccessibilityNotificationVoiceOverIdentifier