我剛剛從用戶那裏得到一份報告,說他的機器上有一個新版本在他的機器上試圖啓動時崩潰。碰撞報告是:
過程:MyApp的[222] 路徑:/Applications/MyApp.app/Contents/MacOS/MyApp 標識符:com.MyCompany.MyAppAppAndImporter 版本:??? (???) 編碼類型:X86-64(母語) 父進程:的launchd [155]
日期/時間:2010-09-04 14:27:21.668 -0400 OS版本: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
用戶運行的是OS X 10.5。 8在3.06 GHz Core 2 Duo Macbook Pro上。我能夠在我的PowerBook G4上的Tiger和Leopard下以及我的iMac上的Snow Leopard上啓動應用程序。至少有一個用戶能夠在Snow Leopard下正常啓動應用程序。從我的(確實很小的)樣本集中,我認爲這個問題是針對運行Leopard的64位機器的。
我的項目使用10.6 SDK進行編譯,並將Deployment Target設置爲10.4。
我使用10.5 SDK重新編譯並且問題消失。我最好的猜測是它與NSURL從Snow Leopard中的基金會遷移到CoreFoundation有關(請參閱http://www.cocoabuilder.com/archive/cocoa/280239-nsurl-crash.html?q=%22nsurl+crash%22#280239)。我不明白的是,爲什麼它可以在我的(32位)PowerBook G4上正常工作,但不會在用戶的64位Intel Mac上工作,即使它們都在運行Leopard。
有關如何解決這個問題或者究竟爲什麼會發生這種情況的想法?
我編輯了這個問題以包含完整的崩潰報告,以及有關使用10.5 SDK修復崩潰的重新編譯的信息。我已經要求用戶提供系統分析報告,但還沒有收到他的回覆。 – 2010-09-05 22:58:59
我剛剛收到他的System Profiler報告。我不確定除了他在運行10.5.8的64位Mac上的相關信息之外。我已經爲他的系統添加了更多關於這個問題的細節。 – 2010-09-06 17:05:38