小编mwo*_*ods的帖子

NSConcreteTask launchWithDictionary崩溃

我似乎得到了很多像这样的崩溃报告:

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)

cocoa objective-c nstask

9
推荐指数
1
解决办法
1031
查看次数

无法完全符号化iOS崩溃日志

我可能已经阅读了20篇关于这个主题的文章和论坛帖子,但我仍然无法使其发挥作用.

我的应用似乎符号很好,但我不能象征系统调用,这是我收到的大多数崩溃日志似乎崩溃的地方.

我试过了:

  • Xcode的多个版本
  • 在GitHub上使用patched symbolicatecrash脚本
  • 使用mdimport导入app archive和Xcode app
  • 将运行iOS 6的iPad连接到Xcode以便它可以扫描它(在Xcode包内看一下在DeviceSupport目录中显示一个名为"6.0(10A403)"的文件夹,这是iOS 6的最终版本)
  • 将崩溃日志导入Xcode.它失败,没有错误.使其导入的唯一方法是从另一个日志复制和Incident Indentifier和CrashReporterKey字段,但它仍然无法象征系统调用.

为什么这不起作用?其他人如何设法让这个工作?(注意:我已经遇到这个问题很长时间了,所以它与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)

iphone xcode symbolicate symbolicatecrash ios

8
推荐指数
1
解决办法
4562
查看次数