未找到符号:在Mac OS X Leopard上启动时出现_OBJC_CLASS _ $ _ NSURL错误

时间:2010-09-04 22:58:45

标签: objective-c cocoa macos nsurl core-foundation

我刚刚收到用户的报告,当他尝试启动时,我的应用的新版本会在他的计算机上崩溃。崩溃报告是:

流程:MyApp [222] 路径:/Applications/MyApp.app/Contents/MacOS/MyApp 标识符:com.MyCompany.MyAppAppAndImporter 版本:??? (???) 代码类型:X86-64(原生) 父流程:launchd [155]

日期/时间:2010-09-04 14:27:21.668 -0400 操作系统版本:Mac OS X 10.5.8(9L30) 报告版本:6 匿名UUID:8F8B3FDF-6F95-463B-AC8F-170775D224D2

异常类型:EXC_BREAKPOINT(SIGTRAP) 例外代码:0x0000000000000002,0x0000000000000000 崩溃的线程:0

Dyld错误消息:   找不到符号:_OBJC_CLASS _ $ _ NSURL   参考自:/Applications/MyApp.app/Contents/MacOS/MyApp   预计:/ System / Library / Frame / CoreFoundation.framework / Version / A / CoreFoundation

用户在3.06 GHz Core 2 Duo Macbook Pro上运行OS X 10.5.8。我能够在我的PowerBook G4上使用Tiger和Leopard以及在我的iMac上的Snow Leopard上启动应用程序。至少有一个用户可以在Snow Leopard下正常启动应用程序。从我的(不可否认的小样本)集中,我认为该问题特定于运行Leopard的64位计算机。

我的项目是使用10.6 SDK编译的,部署目标设置为10.4。

我使用10.5 SDK重新编译,问题就消失了。我最好的猜测是它与NSURL在Snow Leopard中从Foundation移动到CoreFoundation有关(见http://www.cocoabuilder.com/archive/cocoa/280239-nsurl-crash.html?q=%22nsurl+crash%22#280239)。我不明白的是为什么它能在我的(32位)PowerBook G4上正常工作,但在用户的64位Intel Mac上却没有,即使它们都在运行Leopard。

关于如何解决这个问题的想法或者为什么会发生这种情况?

2 个答案:

答案 0 :(得分:1)

在64位豹机上启动。鉴于类名称错误,它看起来像64位。

让用户向您发送System Profiler报告。

答案 1 :(得分:0)

我从来没有找到真正的解决方案。由于依赖于libcrypto.0.9.7,我只是在10.5上构建了这个问题的应用程序的发布版本。