iOS怪异错误:dyld:符号未找到:__dealloc?

7

我突然遇到了以下错误,这导致模拟器无法运行任何应用程序。应用程序只是崩溃了。

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。 - Indrajeet
@Indrajeet 已删除 XCode 的广告并重新安装,但没有帮助。 - Easwaramoorthy K
4个回答

3
Xcode 6.1发行说明中所述,问题在于您在iOS 7.1运行时链接了添加到Yosemite和iOS 8的新框架。不幸的是,这会导致dyld在iOS 7.1模拟器运行时尝试引入主机版本的库。

如果应用程序针对iOS 8 SDK和OS X 10.10 SDK中的新框架进行了弱链接,则如果运行目标是较旧版本的iOS模拟器且主机系统正在运行Yosemite,则可能无法运行。 (17807439)

此外,如果未完全安装iOS 7.1模拟器运行时(例如由于中断的安装),也可能发生这种情况。如果发生这种情况,如果有可用的缺失库,dyld将同样会退回到主机。

iOS 8.0及更高版本具有自己的dyld,将拒绝拉取库的主机版本,因此将在未来防止此类问题。

Xcode 6.2及更高版本安装的iOS 7.1模拟器运行时已更新以解决此问题。


可以确认发生在未完全安装的SDK上。 - Ivan

0

经过几天的挣扎,我发现我的操作系统文件已经损坏。因此,我格式化了我的机器,并重新安装了全新的MAC OS X Mavericks。

现在一切都正常运作。


我的项目在xcode5.1.1和ios 7.1.1中运行良好,但每当我在xcode6中运行该项目时,它会显示错误,请问你能帮我解决吗? - sandy
1
对于许多人来说,这可能不是一个合适的解决方案。还有其他人用其他方法解决了这个问题吗? - Ashutosh
你是如何发现操作系统文件已损坏的? - Unheilig

-1

这是苹果工具中的官方错误。我最近也遇到了同样的问题。更新到最新版本就可以解决。

mac-ruilong:~ winroot$ xcodebuild -showsdks

OS X SDK:

OS X 10.9                       -sdk macosx10.9
OS X 10.10                      -sdk macosx10.10

iOS SDKs:

iOS 8.1                         -sdk iphoneos8.1

iOS模拟器SDK:

Simulator - iOS 8.1             -sdk iphonesimulator8.1

参考: Xcode 5.1 iOS 模拟器 7.1 黑屏问题(dyld: Symbol not found: __dealloc)


-1

尝试在import语句中找到拼写错误,也许是意外地打成了inport


不,那不是问题。即使是全新的基于单视图的应用程序也无法工作。 - Easwaramoorthy K

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