我刚刚收到一个用户的报告,该报告显示我的应用程序的新版本在尝试启动时在他的计算机上崩溃。崩溃报告是:

流程:MyApp [222]
路径:/Applications/MyApp.app/Contents/MacOS/MyApp
标识符:com.MyCompany.MyAppAppAndImporter
版本:??? (???)
代码类型:X86-64(本机)
父流程:已启动[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/Frameworks/CoreFoundation.framework/Versions/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。

关于如何解决此问题或确切原因的任何想法?

最佳答案

它应该在64位豹计算机上启动。给定类名mangling,它看起来确实像64位。

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

关于objective-c - 在Mac OS X Leopard上启动时,找不到符号:_OBJC_CLASS _ $ _ NSURL错误,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/3644299/

10-10 20:46