重要提示:  此文档不再更新。有关Apple SDK的最新信息,请访问文档网站

来源: https://developer.apple.com/library/archive/qa/qa1747/_index.html

问:如何在没有Xcode调试器的情况下调试部署的应用程序?

答:一旦部署了应用程序,无论是通过App Store还是作为Ad Hoc或Enterprise构建,您都无法将Xcode的调试器附加到它上面。要调试问题,您需要分析设备的崩溃日志和控制台输出。

Apple Watch崩溃日志将在配对设备上提供,也可以使用下述方法获取。

有关编写富NSLog语句的更多信息,请参阅Objective-C中的改进日志记录

获取崩溃日志和控制台输出

直接从没有Xcode的设备获取崩溃日志

您的用户可以通过其设备检索崩溃报告,并按照这些说明通过电子邮件将其发送给您。

(无法直接从设备获取设备控制台日志)

1)打开设置应用

2)转到隐私,然后是诊断和使用

3)选择诊断和使用数据

4)找到崩溃的应用程序的日志。日志将以以下格式命名:<AppName> _ <DateTime> _ <DeviceName>

5)选择所需的日志。然后,使用文本选择UI选择日志的整个文本。选择文本后,点按“复制”

6)将复制的文本粘贴到Mail并根据需要发送到电子邮件地址

使用Xcode从设备获取崩溃日志和控制台输出

即使您无法在Xcode的调试器中运行该应用程序,Xcode仍然可以为您提供调试问题所需的所有信息。

使用Xcode 6

1)插入设备并打开Xcode

2)从菜单栏中选择Window - > Devices

3)在左列的DEVICES部分下,选择设备

4)要查看设备控制台,请单击右侧面板左下角的向上三角形

5)单击右下角的向下箭头将控制台另存为文件

6)要查看崩溃日志,请选择右侧面板“设备信息”部分下的“查看设备日志”按钮

7)在Process列中找到您的应用程序,然后选择Crash log以查看内容。

8)要保存崩溃日志,请右键单击左列中的条目,然后选择“导出日志”

9)Xcode 6还将列出低内存日志。这些将显示为进程名称“未知”和类型“未知”。您应该检查这些日志的内容,以确定是否有任何这些日志是由您的应用程序引起的。有关内存不足日志的详细信息,请参阅了解和分析iOS应用程序崩溃报告

使用Xcode 5

1)插入设备并打开Xcode

2)打开“管理器”窗口,然后选择“设备”选项卡

3)在左列的DEVICES部分下,展开设备的列表

4)选择设备日志以查看崩溃日志,或选择控制台以查看控制台输出

启用App Store诊断报告

从选择向Apple发送诊断和使用信息的客户自动收集崩溃日志。

从Xcode 6.3开始,可以在Xcode Organizer中找到至少运行iOS 8.3和TestFlight beta测试人员的App Store客户的崩溃日志。要获取这些崩溃日志:

1)在Xcode 6.3及更高版本中打开管理器窗口

2)选择顶部的“崩溃”。然后可以在此窗口中找到可用的崩溃日志。

“ 应用程序分发指南”包含有关崩溃报告服务的更多信息。

可以在iTunes Connect中找到运行较旧iOS版本的客户的崩溃报告。

如果有人报告崩溃,并且您在iTunes Connect中没有看到相应的报告,则应将其引导至以下适用于MacWindows的知识库文章以便他们可以选择向您发送崩溃报告。

了解崩溃日志和控制台输出

理解崩溃日志的第一步也是最重要的一步是对它们进行符号化。符号化用人类可读的函数名称和行号替换内存地址。

如果您通过Xcode的设备窗口从设备上获取崩溃日志,那么几秒后它们将自动为您设置符号。否则,您需要通过将.crash文件导入Xcode来自己进行符号化。打开Xcode Devices窗口,选择有问题的设备,将崩溃文件拖到左侧列,按住Control键并单击刚刚添加的文件,然后从菜单中选择“Re-Symbolicate Log”。

有关解释崩溃日志的更多信息,请参阅了解和分析iOS应用程序崩溃报告技术说明以及了解iPhone OS WWDC 2010会话上的崩溃报告


文档修订历史

日期 笔记
二零一五年七月三十零日

添加了Apple Watch崩溃日志的注释,以及如何从Xcode获取App Store和TestFlight崩溃日志的说明。

2015年5月14日

添加了直接从设备获取崩溃日志而不使用Xcode的方法

2015年1月8日

更新的链接和删除的部分不再相关。

情节中字

使用Xcode 6获取设备控制台和日志的更新说明

2012-03-28

添加了有关低内存日志的说明。

2011-11-09

新文档,描述如何通过App Store或Ad Hoc构建调试已部署的应用程序

iOS获取崩溃日志的更多相关文章

  1. ios 获取崩溃日志

    虽然有了try catch异常捕获,但是还是存在崩溃异常无法捕获到的.我可以通过下面的方式来获取崩溃日志: - (BOOL)application:(UIApplication *)applicati ...

  2. 【转】iOS应用崩溃日志分析

    作为一名应用开发者,你是否有过如下经历?   为确保你的应用正确无误,在将其提交到应用商店之前,你必定进行了大量的测试工作.它在你的设备上也运行得很好,但是,上了应用商店后,还是有用户抱怨会闪退 ! ...

  3. iOS应用崩溃日志分析

    转自raywenderlich   作为一名应用开发者,你是否有过如下经历?   为确保你的应用正确无误,在将其提交到应用商店之前,你必定进行了大量的测试工作.它在你的设备上也运行得很好,但是,上了应 ...

  4. 【转】iOS应用崩溃日志揭秘

    这篇文章还可以在这里找到 英语 If you're new here, you may want to subscribe to my RSS feed or follow me on Twitter ...

  5. iOS应用崩溃日志揭秘

    这篇文章还可以在这里找到 英语 Learn how to make sense of crash logs! 本文作者是 Soheil Moayedi Azarpour, 他是一名独立iOS开发者. ...

  6. iOS应用崩溃日志分析 iOS应用崩溃日志揭秘

    转自:http://www.raywenderlich.com/zh-hans/30818/ios%E5%BA%94%E7%94%A8%E5%B4%A9%E6%BA%83%E6%97%A5%E5%BF ...

  7. 转:ios应用崩溃日志揭秘

    http://www.raywenderlich.com/zh-hans/30818/ios应用崩溃日志揭秘

  8. IOS设备获取崩溃日志的办法

    除了用xcode 的devices功能获取之外,在windows下面也是可以获取的.首先安装itools.下载地址: http://www.itools.cn/ 安装好后将设备(iphone或ipad ...

  9. iOS,应用崩溃日志分析

    参考资料:http://www.cocoachina.com/industry/20130725/6677.html 1.获得崩溃日志 2.崩溃日志实例 3.符号化崩溃日志 4.低内存闪退 获得崩溃日 ...

随机推荐

  1. Centos7修改默认网卡名(改为eth0)以及网卡启动报错RTNETLINK answers: File exists处理

    安装好centos7版本的系统后,发现默认的网卡名字有点怪,为了便于管理,可以手动修改.下面对centos7版本下网卡重命名操作做一记录:1)编辑网卡信息[root@linux-node2~]# cd ...

  2. Docker使用Link与newwork在容器之间建立连接

    一,使用 --link容器互联 docker 默认使允许container 互通的(通过-icc=false 关闭互通)同一个宿主机上的多个docker容器之间如果想进行通信,可以通过使用容器的ip地 ...

  3. WordPress版微信小程序3.2版发布

    WordPress版微信小程序(下称开源版)距离上次更新已经过去大半年了,在此期间,我开发新的专业版本-微慕小程序(下称微慕版),同时开源版的用户越来越多,截止到2018年11月26日,在github ...

  4. 对python的一些拙见

    对于python,总的来说有点机缘巧合的识得了它.当我录取专业是计算机的时候,身边的一些人向我介绍了这个解释型脚本语言吧.大一自学了一部分,刚好听的网课是嵩天老师的课,这学期迫不及待地拉着舍友选了这个 ...

  5. Flex 布局的教程

    前言:以前也经常用flex布局,但是最近看到别人使用的时候,发觉以前自己还是不够理解这个,重新看了一遍http://www.ruanyifeng.com/blog/2015/07/flex-gramm ...

  6. DatetimeHelper,时间帮助类

    public static class DateTimeEx { /// <summary> /// 得到中文形式的日期 /// </summary> /// <para ...

  7. Centos7 系统下怎么更改apache默认网站目录

    当我们在Centos7中配置好Apache时,发现apache默认解析目录是在 /var/www/html,也就是说当访问服务器 IP 或者本地 localhost 时,默认定位到这个目录里的 ind ...

  8. openssl error while loading serial number

    unable to load number from D:/Program Files/OpenSSL-Win64/bin/demoCA/serialerror while loading seria ...

  9. Hive 特殊日期获取 tips

    获取当前日期 SELECT CURRENT_DATE, CURRENT_TIMESTAMP, from_unixtime(unix_timestamp()); 上个月1号 concat(substr( ...

  10. JAVA学习记录(二)————JAVA中的IO

    Java中I/O操作主要是指使用Java进行输入,输出操作. Java所有的I/O机制都是基于数据流进行输入输出,这些数据流表示了字符或者字节数据的流动序列. 数据流是一串连续不断的数据的集合,就象水 ...