我刚从iTunes Connect下载了我的一个iPhone应用程序的崩溃报告.最常见的崩溃有如下所示的痕迹:
Exception Type: EXC_BAD_ACCESS (SIGSEGV)
Exception Codes: KERN_INVALID_ADDRESS at 0xa1b1c1db
Crashed Thread: 0
Thread 0 Crashed:
0 libobjc.A.dylib 0x3030e6f4 objc_msgSend + 16
1 UIKit 0x30ebebee -[UIWebView webView:resource:didFinishLoadingFromDataSource:]
2 UIKit 0x30ebe5ca -[UIWebViewWebViewDelegate webView:resource:didFinishLoadingFromDataSource:]
3 CoreFoundation 0x32b73b5c __invoking___ + 60
4 CoreFoundation 0x32bc67be -[NSInvocation invoke]
5 WebCore 0x320baa86 HandleDelegateSource
6 CoreFoundation 0x32bb8a96 CFRunLoopRunSpecific
7 CoreFoundation 0x32bb8356 CFRunLoopRunInMode
8 GraphicsServices 0x30544cd4 GSEventRunModal
9 GraphicsServices 0x30544d80 GSEventRun
10 UIKit 0x30d2c768 -[UIApplication _run]
11 UIKit 0x30d2b46c UIApplicationMain
Run Code Online (Sandbox Code Playgroud)
我大约80%确定这是UIWebView内部的问题,超出了我能解决的范围.有没有人有任何关于如何缩小这个问题的建议,以帮助确定它是OS和UIWebView的问题,还是我可以在我的代码中修复和解决的问题?提前致谢.
更新:有问题的UIWebView在视图中,当用户点击相应导航控制器的后退按钮时,该视图将被释放.已接受的解决方案似乎为此错误发生的原因提供了一个很好的解释.
在建议解决之前:
- (void)dealloc {
[webView …Run Code Online (Sandbox Code Playgroud) 我将在AppStore上启动我的应用程序,我想跟踪崩溃并尽快修复它们.如果可能的话,收集关于用户活动和其他有用的东西的一些额外信息会很好.为了做到这一点,我找了一些崩溃报告工具,我发现最有趣的是:TestFlight Live,QuincyKit和Crashlytics.
在这三者中,QuincyKit应该是最轻的,但其他两个似乎非常有趣,因为它们提供了更复杂的报告和其他有趣的东西.
我的目标是在用户可以遇到的任何问题上获得尽可能多的信息,但同时我不想让应用程序变慢或消耗更多资源.
谢谢!
这是我决定的:
我正在使用Crashlytics进行崩溃报告(是的,它看起来真的很棒)和TestFlight用于跟踪用户活动(检查点对于找出用户通常做什么以及弄清楚趋势是什么非常有用).我按照这里写的说明
正如我在标题中所说,我正在为iPhone编写一个应用程序,它在调试模式下运行完美,但当我将其构建为发布并通过TestFlight安装时,它会崩溃.由于崩溃日志,它可能必须使用以下行:
let path = NSBundle.mainBundle().pathForResource("PrinterList", ofType: "plist")
if path != nil {
let printerDic = NSDictionary(contentsOfFile: path!)
let printerList = NSArray(array: printerDic.allKeys)
printerNames = printerList as [String]
}
Run Code Online (Sandbox Code Playgroud)
我使用Brother的框架在没有AirPrint的情况下进行打印,但我认为这不是问题,因为应用程序在使用框架之前崩溃了.它只在我执行这些行的ViewController中崩溃.我也只需要在这个ViewController中使用框架.
可能重复:
iphone如何从客户那里获取崩溃日志?
我的一些用户报告崩溃.向他们解释如何向我发送崩溃报告的最佳方式是什么,以便它们显示在崩溃报告的iTunes Connect列表中?当用户将手机与电脑同步时,它们会被发送吗?谢谢!
我正在尝试使用以下命令将dSYM文件上传到Firebase:
./Pods/FirebaseCrash/batch-upload -i ./Info.plist -p ./GoogleService-Info.plist ./service-accounts/mtb.json 78*****C-5**4-3***-***C-00*********7
Run Code Online (Sandbox Code Playgroud)
但每次我运行这个,我都会收到以下错误
./Pods/FirebaseCrash/upload-sym-util.bash:377: error: symbolFileMappings:upsert: The uploaded file is not a valid Breakpad Symbol file.
./Pods/FirebaseCrash/upload-sym-util.bash:378: note: symbolFileMappings:upsert: The metadata for the symbol file failed to update.
Run Code Online (Sandbox Code Playgroud)
我试过这个链接https://groups.google.com/forum/#!msg/firebase-talk/4829Sp1_uKY/IEC_T4-VBAAJ,但没有运气,因为它出错了
usage: batch-upload [-hv] [-p google-service] [-i info] service-account-file {mach-o file|uuid}
Run Code Online (Sandbox Code Playgroud)
有人可以帮我这个吗?
谢谢
我试图弄清楚我收到的iPhone应用程序的崩溃日志.我能看到的主要内容是:
Application Specific Information:
MyMoodTrack[144] has active assertions beyond permitted time:
{(
<SBProcessAssertion: 0x73c6480> identifier: Suspending process: MyMoodTrack[144] permittedBackgroundDuration: 10.000000 reason: suspend owner pid:26 preventSuspend preventThrottleDownCPU preventThrottleDownUI
)}
Run Code Online (Sandbox Code Playgroud)
这告诉我,好像这个过程已被杀死,因为启动时间太长.这听起来不错吗?它只发生在用户没有互联网连接的情况下,尽管我还没有能够在我的最后重复这一点.下面附有完整的崩溃日志,但我无法正确地进行符号化.
Incident Identifier: 368C9C91-43FF-4FB5-AD50-B75D944AFB1B
CrashReporter Key: 18c5260f4e6af9802ba3eb0d838ed5b6dc7b932a
Hardware Model: iPod3,1
Process: MyMoodTrack [144]
Path: /var/mobile/Applications/E39675AA-1E1C-4D39-98DB-A81A1F944DE6/MyMoodTrack.app/MyMoodTrack
Identifier: MyMoodTrack
Version: ??? (???)
Code Type: ARM (Native)
Parent Process: launchd [1]
Date/Time: 2010-09-05 22:53:42.306 +0100
OS Version: iPhone OS 4.0.2 (8A400)
Report Version: 104
Exception Type: 00000020
Exception Codes: 0x8badf00d
Highlighted Thread: 0
Application Specific …Run Code Online (Sandbox Code Playgroud) 组织者中新的Xcode 7"Crashes"选项卡显示了AppStore为我的应用程序发生的一些崩溃.根据文档,应该有一个堆栈跟踪.但是,6次崩溃都没有象征着堆栈跟踪:

当然,当我提交到商店时,我包含了dsym和调试信息.我仍然在我的组织者中提交了提交内容,因此我的机器上仍然存在dsyms.如何在此获得正确的堆栈跟踪?
我在Play Console中收到了一些崩溃报告,标题如下:
signal 5 (SIGTRAP), code 1 (TRAP_BRKPT)
webview.apk
Run Code Online (Sandbox Code Playgroud)
以及详细信息:
backtrace:
native: pc 00000000011a1ed4 /system/app/webview/webview.apk
native: pc 00000000011e01f8 /system/app/webview/webview.apk
Run Code Online (Sandbox Code Playgroud)
就是这样,没有更多的信息.
重要的是(a)崩溃的数量非常少,因此我的代码必须基本上是健全的,并且(b)报告全部来自Android 7.0设备.
我怎样才能开始解决可能发生坠机的地方?我可以发布一些代码,但它可能无济于事,因为绝大多数设备都没有窒息,无论如何我只是在寻找一些洞察或提示,以便在哪里进一步查看.我无法在我尝试的任何设备上重现此崩溃.
还有一个类似的问题在这里,还没有答案.
android crash-reports android-7.0-nougat google-play-console
我在iPhone 5和4s上测试了我的应用程序.然后我将我的应用程序发送给测试人员,他有5s iPhone.一切都很好.一段时间后,当我向应用程序添加一些功能时,我向他发送了另一个版本,但现在他说它在发布时崩溃了.在我的设备上一切正常.我让他给我发送崩溃报告.这是.ips文件:
{"bundleID”:"name.my-app","app_name”:”my-app","bug_type":"109","name”:”my-app","os_version":"iPhone OS 7.1 (11D167)","version":"1.0 (1.0)"}
Incident Identifier: 3916. . .194
CrashReporter Key: 58fd. . .7399
Hardware Model: iPhone6,2
Process: my-app [277]
Path: /var/mobile/Applications/0AB0. . .B5B/my-app.app/my-app
Identifier: name.my-app
Version: 1.0 (1.0)
Code Type: ARM-64 (Native)
Parent Process: launchd [1]
Date/Time: 2014-03-27 02:10:39.959 +0400
OS Version: iOS 7.1 (11D167)
Report Version: 104
Exception Type: EXC_CRASH (SIGABRT)
Exception Codes: 0x0000000000000000, 0x0000000000000000
Triggered by Thread: 24
Last Exception Backtrace:
(0x1893e2950 0x1958e81fc 0x1893e2890 0x1000f09a0 0x195ec0014 0x195ebffd4 0x195ec64a8 0x195ec24c0 0x195ec70f4 0x195ec74fc 0x1960556bc 0x19605554c) …Run Code Online (Sandbox Code Playgroud) 我在crashlytics上收到此错误日志.我不知道是什么原因导致了这起事故.它出现在Android 4.x,5.x,6.x设备上.(三星,索尼,LGE等)
Fatal Exception: java.lang.NullPointerException: Attempt to invoke interface method 'boolean android.view.inputmethod.InputConnection.finishComposingText()' on a null object reference
at android.view.inputmethod.InputConnectionWrapper.finishComposingText(InputConnectionWrapper.java:78)
at android.view.inputmethod.InputMethodManager.checkFocusNoStartInput(InputMethodManager.java:1809)
at android.view.inputmethod.InputMethodManager.checkFocus(InputMethodManager.java:1761)
at android.view.inputmethod.InputMethodManager.isActive(InputMethodManager.java:883)
at android.widget.Editor$CursorAnchorInfoNotifier.updatePosition(Editor.java:4095)
at android.widget.Editor$PositionListener.onPreDraw(Editor.java:2564)
at android.view.ViewTreeObserver.dispatchOnPreDraw(ViewTreeObserver.java:1018)
at android.view.ViewRootImpl.performTraversals(ViewRootImpl.java:2313)
at android.view.ViewRootImpl.doTraversal(ViewRootImpl.java:1301)
at android.view.ViewRootImpl$TraversalRunnable.run(ViewRootImpl.java:7021)
at android.view.Choreographer$CallbackRecord.run(Choreographer.java:777)
at android.view.Choreographer.doCallbacks(Choreographer.java:590)
at android.view.Choreographer.doFrame(Choreographer.java:560)
at android.view.Choreographer$FrameDisplayEventReceiver.run(Choreographer.java:763)
at android.os.Handler.handleCallback(Handler.java:739)
at android.os.Handler.dispatchMessage(Handler.java:95)
at android.os.Looper.loop(Looper.java:145)
at android.app.ActivityThread.main(ActivityThread.java:6918)
at java.lang.reflect.Method.invoke(Method.java)
at java.lang.reflect.Method.invoke(Method.java:372)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1404)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1199)
Run Code Online (Sandbox Code Playgroud) crash-reports ×10
ios ×5
iphone ×4
android ×2
testflight ×2
crashlytics ×1
dsym ×1
firebase ×1
java ×1
objective-c ×1
swift ×1
testing ×1
uiwebview ×1
xcode ×1
xcode7 ×1