我似乎得到了很多像这样的崩溃报告:
Crashed Thread: 14
Exception Type: EXC_GUARD
Exception Codes: 0x4000000200000000, 0x00007fff96f73c48
Thread 14 Crashed:
0 libsystem_kernel.dylib 0x00007fff97b7213a dup + 10
1 com.apple.Foundation 0x00007fff8a116cee -[NSConcreteTask launchWithDictionary:] + 2457
2 com.mycompany.myapp 0x0000000100022814 +[MCSoftwareUpdate automaticallyCheckForUpdates] + 352
3 com.apple.Foundation 0x00007fff89fed76b __NSThread__main__ + 1318
4 libsystem_pthread.dylib 0x00007fff8d2e4899 _pthread_body + 138
5 libsystem_pthread.dylib 0x00007fff8d2e472a _pthread_start + 137
6 libsystem_pthread.dylib 0x00007fff8d2e8fc9 thread_start + 13
Run Code Online (Sandbox Code Playgroud)
它不仅影响上述方法 - 它会影响使用的任何代码NSTask.我做了一些研究,并建议修复权限可以解决问题,但这不是很有用,因为我无法与报告这些崩溃的用户联系.我已经将代码放在try catch块中 - 我还能做些什么来最小化或消除它吗?
我编写了以下函数来包装NSTask.
码:
+ (BOOL)runTask:(NSString*)taskPath arguments:(NSArray*)args task:(NSTask**)taskObj
{
if (![[NSFileManager defaultManager] isExecutableFileAtPath:taskPath] || …Run Code Online (Sandbox Code Playgroud) 我可能已经阅读了20篇关于这个主题的文章和论坛帖子,但我仍然无法使其发挥作用.
我的应用似乎符号很好,但我不能象征系统调用,这是我收到的大多数崩溃日志似乎崩溃的地方.
我试过了:
为什么这不起作用?其他人如何设法让这个工作?(注意:我已经遇到这个问题很长时间了,所以它与iOS 6和Xcode 4.5的新版本无关.)
脚本输出中填充了许多行,如下所示:
Searching in Spotlight for dsym with UUID of f167dacec44b3a86a8eee73400ff7a83
Running mdfind "com_apple_xcode_dsym_uuids == F167DACE-C44B-3A86-A8EE-E73400FF7A83"
@dsym_paths = ( )
@exec_names = ( )
Did not find executable for dsym
## Warning: Can't find any unstripped binary that matches version of /usr/lib/system/libsystem_kernel.dylib
Run Code Online (Sandbox Code Playgroud)
我使用以下终端命令:
/Applications/Xcode/Xcode4.5.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/Library/PrivateFrameworks/DTDeviceKit.framework/Versions/A/Resources/symbolicatecrash -v ~/Desktop/My\ App.crash /Users/me/Library/Developer/Xcode/Archives/2012-07-23/My\ App\ 1.1.6\ 7-23-12\ 11.20\ AM.xcarchive/Products/Applications/My\ App.app
Run Code Online (Sandbox Code Playgroud)
这会产生以下输出:
Incident Identifier: [TODO]
CrashReporter Key: [TODO]
Hardware Model: iPad2,1 …Run Code Online (Sandbox Code Playgroud)