Я только что получил сообщение от пользователя о том, что новая сборка моего приложения падает на его компьютере, когда он пытается его запустить. Отчет о сбое:
Процесс: 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/Frameworks/CoreFoundation.framework/Versions/A/CoreFoundation
Пользователь использует OS X 10.5.8 на 3,06 ГГц Core 2 Duo Macbook Pro. Я могу нормально запустить приложение под Tiger и Leopard на моем PowerBook G4 и на Snow Leopard на моем iMac. По крайней мере, один пользователь может нормально запустить приложение под Snow Leopard. Из моего (предположительно небольшого) выборочного набора я думаю, что проблема специфична для 64-битных машин, работающих под управлением Leopard.
Мой проект скомпилирован с 10,6 SDK с целевым значением развертывания 10,4.
Я перекомпилировал с использованием 10.5 SDK, и проблема исчезла. По-моему, это связано с переходом NSURL из Foundation в CoreFoundation в Snow Leopard (см. http://www.cocoabuilder.com/archive/cocoa/280239-nsurl-crash.html?q=%22nsurl+crash%22#280239).. Я не понимаю, почему он работает нормально на моем (32-разрядном) PowerBook G4, но не на 64-битном Intel Mac пользователя, хотя оба работают под управлением Leopard.
Есть мысли о том, как это исправить или почему именно это происходит?