首页 文章

Crashlytics没有从iPhone发送崩溃报告

提问于
浏览
68

我在我的一个iOS应用程序中设置了Crashlytics并在真实设备上安装了该应用程序 . 我的Crashlytics Dashboard正在显示,我已经成功添加了应用程序 . 但是,它不会发送崩溃报告 . 我的网速不是很好 . 但我可以通过此设备查看我的电子邮件 . 谁能猜到,问题出在哪里?

17 回答

  • 6

    Xcode调试器不允许Crashlytics处理崩溃报告 . 是的,当我第一次看到这个时,这对我来说似乎很奇怪,但这是事实(Source) . 这就是我们从未见过崩溃报告的原因:

    • 在模拟器中运行应用程序
    • 在iDevice上运行应用程序,直接构建并在Xcode上运行调试器 .

    要确保在测试期间报告崩溃(copied from Crashlytics support site):
    1.启动模拟器
    2.按停止
    3.启动您的应用并强行崩溃
    4.从模拟器重新启动应用程序
    5.在Web仪表板中查看崩溃报告 .

    编辑:

    添加了参考; Crashlytics还提供了一篇关于a quick way to force a crash的简短文章和一篇关于why you don't see the data from your first crash的文章 .

  • 2

    我现在已经晚了但是工作100%

    在项目构建设置中进行一些更改,如下图所示

    enter image description here

    and follow these instructions.

  • 70

    任何崩溃记者无法在iOS上工作的主要原因是由于不同崩溃记者的干扰 . 然而,特别是Crashlytics可能会有一些特定的东西导致崩溃报告没有报告 .

    Xcode调试器不允许 Any Crash Reporter 处理崩溃报告 . 这是因为XCode会覆盖崩溃处理回调中的任何挂钩 . 这只发生在:

    • 在Simulator中运行应用程序(启用调试器)

    • 在iDevice上运行应用程序,直接构建并在Xcode上运行调试器 .

    要确保在测试期间报告崩溃(http://support.crashlytics.com/knowledgebase/articles/92523-why-can-t-i-have-xcode-connected-):

    • 启动模拟器

    • 按停止

    • 启动您的应用并强行崩溃

    • 从模拟器重新启动应用程序

    • 在Web仪表板中查看崩溃报告 .

    虽然这是一个超级老视频,但它是上面步骤的视频(来自Crittercism的例子):https://www.youtube.com/watch?v=sU6Su3PBFH4

  • -3

    对我来说,问题是该设备已连接到我的Mac :)从this source

    此外,如果您的设备已连接到Mac,XCode的调试器也将介入 . 所以在测试之前断开设备:)

  • 0

    我们最近遇到了这个问题,我发现在删除构建脚本的过程中的某个地方 . 将以下内容添加回来为我们解决了问题:
    ./Crashlytics.framework/run <your_api_key> <build_secret>

    Note : 使用Cocoapods时,您需要以下内容而非上述内容(source): ./Pods/CrashlyticsFramework/Crashlytics.framework/run

    添加构建脚本:

    要在Xcode 6中添加运行脚本构建阶段,请在项目中选择应用程序目标,然后选择“构建阶段” . 单击小的“加号”图标,然后选择“新建运行脚本构建阶段” . 您现在应该在Build Phase选项的中间看到Run Script部分,如上所示 . 在Run Script Build Phase的主体内部,粘贴脚本

    以上引用来自Crashlytics的visual tutorial,在this post中引用 .

    Note: 我最初为Crashlytics error code: 202 when Submitting files逐字发布了这个答案 .

  • 7

    我使用以下步骤找到了解决方案
    1.转到编辑方案2.运行 - >信息3.更改构建配置以发布 . 现在运行应用程序崩溃它 . 你会收到邮件 .

  • 1

    来自RayWenderlich网站:

    如果Xcode截获崩溃事件,您将不会收到任何崩溃报告!要使下面的所有示例都有效,您必须构建并运行应用程序,然后单击Xcode上的停止按钮 . 这样,您将在设备上安装最新版本 . 完成后,您可以在设备上启动应用程序,然后将其全部崩溃!您的iOS设备上的所有崩溃都将被捕获并发送到您已集成到应用程序中的服务的服务器组件 . 崩溃报告通常在您下次启动应用程序时发送到服务器,因此在服务器上生成崩溃报告的步骤如下:在Xcode上构建并运行 . 按停止按钮 . 在iOS设备上运行该应用 . 让应用程序崩溃 . 再次运行该应用程序 .

  • 1

    确保你没有过早地强迫崩溃 .

    [Crashlytics sharedInstance].debugMode 设为 YES ;

    注意

    Crashlytics] Settings loaded
    

    在Xcode控制台日志上 .

    然后强制崩溃并重新启动应用程序,现在将报告崩溃 .

  • 60

    我在尝试测试崩溃代码时遇到了类似的问题 .

    Crashlytics.sharedInstance().crash()
    

    我曾是在没有Xcode的情况下从设备运行我的应用程序,崩溃不会出现在Crashlytics Dashboard上 . 对我有用的是来自Crashlytics网站的以下提示:

    • 确保在崩溃后启动应用程序,以便可以上传崩溃

    我注释掉了上面的crash()调用,并重新运行了应用程序 . 然后崩溃出现在仪表板中 .

  • 0

    Crashlytics直到现在都适合我 . 我不知道为什么,但现在它不起作用 .

    你应该打开调试模式

    [Crashlytics sharedInstance].debugMode = YES;
    

    我的问题在这里Crashlytics error code: 202 when Submitting files :(

  • 0

    您是否尝试在设备上运行 [[Crashlytics sharedInstance] crash] 并查看是否报告了该内容? Crashlytics可能不起作用的原因有几个,包括其他崩溃记者等 .

  • -1

    如果您未上传dSYM文件,即使报告已成功上传,Crashlytics也不会显示您的崩溃 .

    如果您已将构建脚本设置为仅在CI服务器上运行,则可能会遇到此问题 . 然后,如果您已经通过xcode将应用程序复制到手机上,并且在没有连接到调试器的情况下运行它,则报告将被上载但会被忽略,因为缺少dSYM文件 .

  • 4

    这是针对xcode 9,来自crashlytics 3.4.0
    STEP1

    STEP2

    这样做之后,请耐心等待几分钟 .

  • 16

    有时,日志显示需要一些时间 . 我能在15-20分钟后找到它们

  • 3

    我觉得在Run Script阶段的问题之一,它应该是CrashLytics的单独Run Script阶段 . 什么时候有运行脚本

    ./Fabric.framework/run
    

    使用我的其他一些脚本,一切正常,提交了CrashLytics日志显示报告,但Web界面中没有任何内容 .

    当我添加另一个运行脚本阶段只与Fabric运行时,它看起来像一个魔术:)

    我的第一次尝试是使用cocoapods,但这不起作用 . 当我手动添加所有框架和单独的运行脚本阶段工作 .

  • 6

    这对我有用,

    如果你在iDevice上测试,只需用你的Xcode拔掉iDevice并运行你的应用程序 . 现在,如果崩溃,它将在仪表板上更新 .

  • 3

    我解决了在运行脚本中取消选择“仅在安装时运行脚本”选项(一个用于Fabric(crashlytics))

    enter image description here

相关问题