我突然收到以下错误,不允许任何应用程序在模拟器中运行。应用程序崩溃了。
dyld: Symbol not found: __dealloc
Referenced from: /System/Library/Frameworks/CoreFoundation.framework/Versions/A/CoreFoundation
Expected in: /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator7.1.sdk/usr/lib/libobjc.A.dylib
in /System/Library/Frameworks/CoreFoundation.framework/Versions/A/CoreFoundation
请推荐!
最佳答案
如 Xcode 6.1 Release Notes 中所述,问题是您正在链接在 iOS 7.1 中运行时添加到 Yosemite 和 iOS 8 的新框架。不幸的是,这会导致 dyld 在 iOS 7.1 模拟器运行时中运行时尝试引入库的主机版本。
If an app is weak linked against frameworks new in iOS 8 SDK and OS X 10.10 SDK, it may fail to run if the run destination is an iOS Simulator for older iOS runtimes and the host system is running OS X Yosemite. (17807439)
此外,如果您的 iOS 7.1 模拟器运行时未完全安装(例如:由于安装中断),也会发生这种情况。如果发生这种情况,dyld 将同样回退到主机以获取缺少的库(如果可用)。
iOS 8.0 及更高版本有自己的 dyld,会拒绝引入库的主机版本,从而防止将来出现此类问题。
由 Xcode 6.2 及更高版本安装的 iOS 7.1 模拟器运行时已更新以解决此问题。
关于iOS 奇怪的错误 : dyld: Symbol not found: __dealloc?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24076866/