我想知道如何在XCode中象征崩溃,我有.crash文件,我不知道该怎么做.
我想修复一个影响我的应用程序的该死的bug,提前谢谢!
我有一个OSX桌面Xcode项目,其中包含另一个Xcode项目(框架)作为依赖项.当我构建应用程序的存档时,它会生成两个dSYM包 - 一个用于app,另一个用于框架.
当我象征从应用程序收到的崩溃时,应用程序包中的符号会正确显示(带有文件名和行号).但是,框架中的符号根本不符号 - 它们只显示框架名称和内存地址.有没有办法用符号表示涉及框架代码的堆栈跟踪部分?
查看我生成.app包的存档,框架的dSYM的UUID与复制到.app中的"Frameworks"文件夹的UUID不匹配:
存档文件中.app包中的HCCommon框架:
/path/to/HipChat.xcarchive $ dwarfdump --uuid Products/Applications/HipChat.app/Contents/Frameworks/HCCommon.framework/HCCommon
UUID: 84891A9C-19DB-3E16-BE7E-9D4056FFFB97 (x86_64) Products/Applications/HipChat.app/Contents/Frameworks/HCCommon.framework/HCCommon
Run Code Online (Sandbox Code Playgroud)
vs HCCommon框架的dSYM(在归档文件的dSYMs目录中):
/path/to/HipChat.xcarchive $ dwarfdump --uuid dSYMs/HCCommon.framework.dSYM/Contents/Resources/DWARF/HCCommon
UUID: 767F2D97-9E0B-3C4D-8337-FDF5A9CA2D81 (x86_64) dSYMs/HCCommon.framework.dSYM/Contents/Resources/DWARF/HCCommon
Run Code Online (Sandbox Code Playgroud) 我的应用程序被Apple拒绝,我收到了.txt格式的崩溃报告,而不是.crash格式.
我如何表示或阅读崩溃报告?
我的iOS项目中出现了一些与WebKit相关的错误.为了给出一些背景知识,我们在应用程序中使用WebViews来显示新闻故事.这些新闻报道通常包含链接,当用户点击链接时,我们通常会将用户带到Safari阅读完整的新闻文章.很标准的东西.无论如何,这是崩溃的样子:
0 libobjc.A.dylib 0x31198f78 objc_msgSend + 15
1 CoreFoundation 0x313567e4 __invoking___ + 68
2 CoreFoundation 0x312b17b1 -[NSInvocation invoke] + 160
3 CoreFoundation 0x312b13cf -[NSInvocation invokeWithTarget:] + 50
4 WebKit 0x3395fe0d -[_WebSafeForwarder forwardInvocation:] + 252
5 CoreFoundation 0x31355a83 ___forwarding___ + 666
6 CoreFoundation 0x312b0650 _CF_forwarding_prep_0 + 48
7 CoreFoundation 0x313567e4 __invoking___ + 68
8 CoreFoundation 0x312b17b1 -[NSInvocation invoke] + 160
9 WebCore 0x31a851f5 _ZL11SendMessageP12NSInvocation + 24
10 WebCore 0x31a986f1 _ZL20HandleDelegateSourcePv + 80
11 CoreFoundation 0x31327ad3 __CFRUNLOOP_IS_CALLING_OUT_TO_A_SOURCE0_PERFORM_FUNCTION__ + 14
12 CoreFoundation 0x3132729f …Run Code Online (Sandbox Code Playgroud) 你能帮助我把我的崩溃象征化吗?
在Xcode 7.3,Window - > Organizer - > Crashes中,我有来自最新TestFlight版本的崩溃报告.它们是在这台Mac上构建的,所有带有相应dSYM的档案都在Archives选项卡中.该应用程序分为许多框架和主要应用程序,许多是Swift和Objective C的混合.在崩溃日志中,我可以看到正确列出的框架和应用程序的名称,但我的框架的所有条目和应用程序是十六进制.UIKit的象征很好.
当我查看iTunes Connect时,它对"包含符号"说"是"并允许我下载dSYM.构建时,"调试信息格式"选项设置为"DWARF with dSYM".我尝试将"在复制期间调试符号"和"剥离链接产品"设置为"否"以查看是否有所作为.它没有.
我在我的系统上找不到symbolicatecrash应用程序,甚至在/ usr/bin或/Applications/Xcode.app/Contents/SharedFrameworks/DTDeviceKitBase.framework/Versions/A/Resources/symbolicatecrash中找不到,但我有一个旧的Xcode 5我在哪里可以抓住它.但是,它不再解析符号.
我在仪器中遇到同样的问题,如果我描述我的应用程序,UIKit象征性很好,但我的框架和应用程序只显示十六进制.
我知道有很多关于这方面的帖子,但是我已经从7.3 beta期间经历了很多,直到现在还没有找到解决方案
我刚刚将我的xcode升级到4.5版本,我尝试了三种方式来表示崩溃日志,但它们都没有成功.
首先,我从设备上获取了崩溃日志,然后将其导入到Organizer的"设备日志"中,但是我的应用程序的确切功能无法显示,内存地址仍显示在结果中.
其次,我将'symbolAppcrash'文件从'/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/Library/PrivateFrameworks/DTDeviceKit.framework/Versions/A/Resources'复制到'/ usr/local/bin'并将.DSYM文件,.app文件和.crash文件放入文件夹,运行命令:'symbolicatecrash Myapp.crash',结果仍显示内存地址.
最后,我尝试了http://xperienced.com.pl/blog/symbolicate-ios-crash-report的方法,但仍然没有运气.
能帮助我解决这个问题吗?
提前致谢!
我有一个应用程序,我刚刚将它提交给应用程序疼痛(该应用程序是为我开发的,因为我不知道iOS开发,但我知道其他编码语言).苹果公司拒绝了应用程序说崩溃了(奇怪的是在我做的所有测试中都没有崩溃,可能大约50个!)我得到了他们的崩溃日志,在Xcode中符号化并得到了这个结果.唯一的问题是我也不明白这一点.我想知道是否有人可以解释这意味着什么,我的代码在哪里,这个错误是什么以及如何解决它.
Incident Identifier: 0E0825D2-FBE9-4BF1-8C7F-B83709C2991A
CrashReporter Key: 5b0d1e3117951cb6f669414656a30ad10c807e15
Hardware Model: iPhone4,1
Process: Chapter3 Framework [6333]
Path: /var/mobile/Applications/4A4C7A70-1B6C-403E-8A98-6563BDF3AF83/Chapter3 Framework.app/Chapter3 Framework
Identifier: Chapter3 Framework
Version: ??? (???)
Code Type: ARM (Native)
Parent Process: launchd [1]
Date/Time: 2012-01-07 17:46:13.980 +1100
OS Version: iPhone OS 5.0.1 (9A405)
Report Version: 104
Exception Type: EXC_BAD_ACCESS (SIGSEGV)
Exception Codes: KERN_INVALID_ADDRESS at 0xb0000008
Crashed Thread: 0
Thread 0 name: Dispatch queue: com.apple.main-thread
Thread 0 Crashed:
0 libobjc.A.dylib 0x31be9fbc objc_msgSend + 16
1 Chapter3 Framework 0x00004d78 0x1000 + 15736
2 …Run Code Online (Sandbox Code Playgroud) 我有一个用户正在使用iPhone应用商店版本的iPhone应用程序崩溃.通过iTunes连接不报告崩溃,用户无法与iTunes同步并获取.crash文件(他们没有计算机).但是,用户可以在"设置>常规>关于>诊断和使用数据"下从手机复制并粘贴崩溃报告.
我将此用户复制的崩溃报告并手动粘贴到文本文件中,并使用.crash扩展名重命名.当我将此手动创建的.crash报告导入XCode的管理器时,我无法对其进行符号化.我正在使用生成应用程序商店二进制文件的相同XCode副本,并且ipa已存档,并且我能够表示来自iTunes连接的崩溃.
是否期望手动创建的.crash文件不会符号化或者我做错了什么?任何帮助将非常感激!
谢谢!
****更新****我也无法使用此处的步骤来表示崩溃报告:符号化iPhone App崩溃报告.
****更新2****以下是崩溃报告:
Incident Identifier: 3A2A3D26-1E44-46AA-9777-658EBBBEDD57
CrashReporter Key: a9eadbf28904a2c3b4d285c7455db9ae06a5a555
Hardware Model: iPhone5,1
Process: MyApp [1180]
Path: /var/mobile/Applications/0B09C692-7C36-4398-AC77-4217401E0FC/MyApp.app/MyApp
Identifier: MyApp
Version: ??? (???)
Code Type: ARM (Native)
Parent Process: launchd [1]
Date/Time: 2013-02-12 18:45:15.066 -0500
OS Version: iOS 6.1 (10B143)
Report Version: 104
Exception Type: 00000020
Exception Codes: 0x000000008badf00d
Highlighted Thread: 0
Application Specific Information:
com.company.MyApp failed to resume in time
Elapsed total CPU time (seconds): 0.800 (user 0.800, system 0.000), 4% CPU …Run Code Online (Sandbox Code Playgroud) 我正在iOS上使用UncaughtExceptionHandler:
NSSetUncaughtExceptionHandler(&myHandler);
Run Code Online (Sandbox Code Playgroud)
void myHandler(NSException * exception)
{
//i can get stack symbols from
//exception.callStackSymbols;
}
Run Code Online (Sandbox Code Playgroud)
6 UIKit 0x000000018a6622c8 <redacted> + 612
7 UIKit 0x000000018a678b88 <redacted> + 592
8 UIKit 0x000000018a678814 <redacted> + 700
9 UIKit 0x000000018a671d50 <redacted> + 684
10 UIKit 0x000000018a644f74 <redacted> + 264
Run Code Online (Sandbox Code Playgroud)
/Users/my_user/Library/Developer/Xcode/iOS\ DeviceSupport/8.4.1\ \(12H321\)/symbols/system/Library/Frameworks/UIKit.framework/UIKit
Run Code Online (Sandbox Code Playgroud)
6 UIKit 0x000000018a6622c8 <redacted> + 612
xcrun atos -arch arm64 -o /Users/my_user/Library/Developer/Xcode/iOS\ DeviceSupport/8.4.1\ \(12H321\)/symbols/system/Library/Frameworks/UIKit.framework/UIKit -l 0x18a662064 0x000000018a6622c8
Run Code Online (Sandbox Code Playgroud)
我无法从此命令中找到正确的输出.
如何象征UIKit等系统框架?
我应该从我的设备中获得符号.我按照http://jmillerdev.net/symbolicating-ios-crash-files-xamarin-ios的说明进行操作.
我创建了aliasfor Xcode 8
别名symbolicate ="/ Applications/Xcode.app/Contents/SharedFrameworks/DVTFoundation.framework/Versions/A/Resources/symbolicatecrash -v"
我更新了开发人员目录
export DEVELOPER_DIR ="/ Applications/Xcode.app/Contents/Developer"
然后是符号
symbolicate -o"symbolicatedCrash.txt""MyAppName 2-12-14,9-44 PM.crash""MyAppName.app"
但我有一个错误
象征myInventories170313.crash ...在阅读myInventories170313.crash时,没有这样的文件或目录:at /Applications/Xcode.app/Contents/SharedFrameworks/DVTFoundation.framework/Versions/A/Resources/symbolicatecrash line 899.
symbolicatecrash ×10
ios ×6
xcode ×4
iphone ×2
objective-c ×2
symbolicate ×2
dsym ×1
frameworks ×1
instruments ×1
ipad ×1
macos ×1
organizer ×1
xcode7 ×1