前言 在日常测试iOS中会经常遇到App崩溃的情况,然后给研发提bug。如果就提bug就有一两句话描述,研发很难精准排查问题,所以作为测试人员需要提供崩溃日志或者崩溃堆栈辅助研发排查问题。...本文介绍几种常用获取崩溃日志的方法,可以帮助大家在工作中提高工作效率和协作效率。...iOS获取日志方法 Xcode工具 先来介绍一种最简单的方式使用Xcode工具方式,手机和mac连接后,打开Xcode选择window进入Organizer,在Organizer窗口上,选中Devices...image 在左侧的导航面板上,选中View Device Logs,如下图所示: Logs菜单就可以看到mac曾经同步过的iOS设备的崩溃日志。...获取设备名称 idevicename idevicecrashrepor崩溃日志 libimobiledevice中的idevicecrashreport工具可以导出真机crash日志,工具位置在tools
在 iPhone 手机上的软件发生闪退或开发 iOS 应用程序时出现的闪退,一般都会自己或系统生成崩溃日志,那么我们从哪里以及怎么获取到崩溃日志呢?...iPhone 手机一台 数据线一条 Xcode 开发工具(可选) 而由于 iOS 系统的沙盒机制,一般我们不能直接访问它获取,但可以有下面的几种方法获取。 1.在 iTunes Store 上获取。...但前提需手机用户打开设置->隐私->诊断与用量的开关。 3.可以通过开发工具 Xcode,数据线连接电脑获取。...通过在Xcode->Window->Devices,然后选中真机设备,点击View Device Logs。等待扫描后获取对应应用和日期的日志。...4.如果是应用开发者,自己代码中记录崩溃日志,并上传到服务器,发生崩溃后从网站日志管理中获取对应的崩溃日志即可。 上架流程 Mac 就一个市场,上架需要官方审核。
虽然 Xamarin 可以在 Windows 操作系统上编写和调试,但如果开发 iOS 应用,那么我们依然需要一台安装有 XCode 和 Visual Studio for Mac...的信息(可以在 Provisioning Profile 旁边的感叹号中看到详细信息) 在 Mac 上插入你的 iPhone,解锁 iPhone,等待左上角出现你 iPhone 的名称和图标。...的步骤没有执行正确) 在 Mac 上插入你的 iPhone,解锁 iPhone,等待左上角出现你 iPhone 的名称和图标。...image.png image.png image.png 理论上经过以上步骤,你就可以在你的 iPhone 上看到你用 Xamarin 开发的应用了。但其实是无法运行的。...如果部署过程中发生了任何错误,请: 检查你的步骤与本文是否有出入; 参考:使用 Xamarin 开发 iOS 应用中需要注意的若干个问题 在 iPhone 上操作 打开设置 -> 通用 -> 设备管理
Code signing 对你来说,最主要的意义就是它能让你的App在设备上运行。不管是你自己的设备,甲方客户的,还是在App store上购买你的消费者。 ...·设备的内存少很多 同理的,模拟器使用你MAC上的内存,而一台真正的iphone的内存少得多。 特别是游戏,通常会使用大量的图片,占用大量的内存。...1 如果你的设备连到Xcode的机器上,你可以在Organizer中看到UDID。...然后下载Apple给你的认证,双击安装,然后你可以在Keychain中看到了吧。...一切都搞定了,连接你的device,在xcode中选择Debug build,build & run。 xcode会到你的设备里装上这个provisioning profile,并运行你的App。
Code signing 对你来说,最主要的意义就是它能让你的App在设备上运行。不管是你自己的设备,甲方客户的,还是在App store上购买你的消费者。 ...·设备的内存少很多 同理的,模拟器使用你MAC上的内存,而一台真正的iphone的内存少得多。 特别是游戏,通常会使用大量的图片,占用大量的内存。...·(译者注:一些视觉上的效果在模拟器上看到的可能会与真机不一致) 在Xcode中有一些懒人的方法: 在organizer的界面中,选中devices 右键Developer Profile,你可以看到这样一个菜单...1 如果你的设备连到Xcode的机器上,你可以在Organizer中看到UDID。 ...一切都搞定了,连接你的device,在xcode中选择Debug build,build & run。 xcode会到你的设备里装上这个provisioning profile,并运行你的App。
Code signing 对你来说,最主要的意义就是它能让你的App在设备上运行。不管是你自己的设备,甲方客户的,还是在App store上购买你的消费者。 ...·设备的内存少很多 同理的,模拟器使用你MAC上的内存,而一台真正的iphone的内存少得多。 特别是游戏,通常会使用大量的图片,占用大量的内存。...·(译者注:一些视觉上的效果在模拟器上看到的可能会与真机不一致) 在Xcode中有一些懒人的方法: 在organizer的界面中,选中devices 右键Developer Profile,你可以看到这样一个菜单...1 如果你的设备连到Xcode的机器上,你可以在Organizer中看到UDID。...一切都搞定了,连接你的device,在xcode中选择Debug build,build & run。 xcode会到你的设备里装上这个provisioning profile,并运行你的App。
到 ipa 在进行 Archive 操作之前,我们就可以在 Xcode 导航栏的 Products 目录中看到 .app 文件,extension target 对应的是 .appex 文件,所以归档出...仔细分析下: iPhone 5S 推出之后,iOS 设备指令集从 armv6、armv7、armv7s 一路干到了 arm64,这么些个不同的设备安装到本地的文件肯定不一样吧 同一设备不同系统,安装的文件也不一样吧...这也解释了我之前尝试用剩 1G 存储的 iPad 去装一个 AppStore 显示 大小不到 1G 的游戏,为什么会装不上,因为下载到 iPad 的文件实际可能大于 1G。...TestFlight 里面显示的 30M+,肯定是经过 iTunes Connect 处理过的 ipa,但考虑到 .ipa 文件并不会比安装到设备的 .app 包体积更小,个人认为这是解压过后的 ipa...) 备注 App Thining 包含 Slicing、Bitcode 和 On-Demand Resources,其中 Slicing 是默认启用、无法关闭的,但只在 iOS 9.0.2 之后有效,后面两个选项在
获取 设备获取 USB连接设备,接着在XCode菜单栏依次选择:Window -> Devices And Simulators,接着选择View Device Logs ?...分析 用于Demo的是一个微信的Crash Log: WeChat-2018-6-11-21-54.crash 设备信息:iPhone 7,iOS 12 beta1 版本信息:微信 6.6.7.32 (...如果你在上传到App Store的时候,选择了上传dsym文件,那么从XCode中看到的崩溃日志是自动符号化的。...Logs 然后把你的crash log,拖动到左侧部分 XCode会自动符号化 XCode能自动符号化需要能够找到如下文件: 崩溃的可执行文件和dsym文件 所有用到的framework的dsym文件...OS版本相关的符号(这个在USB连接的时候,XCode会自动把这些符号拷贝到设备中) atos atos是一个命令行工具,可以用来符号化单个地址,命令格式如下: atos -arch <Binary Architecture
什么是崩溃日志,从哪里能得它 iOS设备上的应用闪退时,操作系统会生成一个崩溃报告,也叫崩溃日志,保存在设备上。 崩溃日志上有很多有用的信息,包括应用是什么情况下闪退的。...通常,上面有每个正在执行线程的完整堆栈跟踪信息,所以你能从中了解到闪退发生时各线程都在做什么,并分辨出闪退发生在哪个线程上。 有几种方法可以从设备上获取崩溃日志。...使用第三方软件:itools等 如果你平时不用iTunes,而是使用itools这类第三方的软件对iPhone设备进行管理,也是没问题的。 ?...Symbolicatecrash Symbolicatecrash是Xcode自带的一个分析工具,可以通过机器上的崩溃日志和应用的.dSYM文件定位发生崩溃的位置,把crash日志中的地址替换成代码相应位置...当有崩溃发生时,会给注册的邮件发送崩溃统计,方便查看。 在crash信息收集时, 如果正在进行debug调试,是收集不到信息的。
想发布到真机,确总出现这样的错误,本来以为是证书过期了,又重新下载了一份,还是这个错误,在网上查了好多解决方法但都没有解决我的问题,我本来安装的是xcode4.2但是新版本跑不起来我原来的程序(里面有大量...大家知道,对于Xcode来说,最麻烦的就是各种证书、ProvisioningProfile的配置问题。将原来的各种开发证书和.p12 证书导入到mini上,接下来就碰到了各种莫名其妙的问题。...后来打开错误日志发现下列描述: iPhone Developer: Hongyan Yang (GNF23CPXYK):ambiguous (matches "iPhone Developer: Hongyan...sudo /Developer/Library/uninstall-devtools --mode=all 如果安装过xcode可以在Developer目录中的about xcode.png中找到这个命令...最后还是在StackOverflow上找到了答案。
测试机直接导出,Xcode -> Window-Devices and simulators -> View Device Logs(左侧工具栏选中你要导出的目的设备),导出文件格式为.crash,其实这种方式读取到的日志文件来源还是来自上面第一条的...不传递强行覆盖的后果是,在其之前注册过的日志收集服务写出的 Crash 日志就会因为取不到 NSException 而丢失 Last Exception Backtrace 等信息。...开启之后我们就可以在 Xcode 打包出来的文件 xcarchive 里面看到它。...其实在该方式的基础上,Xcode 可以可视化的进行崩溃文件符号化,将崩溃日志、 dSYM 文件和可执行文件放在同一目录下,然后将崩溃日志拖拽至 Devicelog 中,右键 symbolicate Log...获取系统符号文件的几个方法 从真机上获取 当你用 Xcode 第一次连接某台设备进行真机调试时,会看到 Xcode 显示 Processing symbol files,这时候就是在拷贝真机上的符号文件到
到目前为止,你一定听说过关于增强现实的这个相当新的概念。这项技术并不新鲜,您已经在电影中看到它或在电子游戏中体验过它。我的意思是,如果不是免费的话,一般人群现在可以以最低成本轻松获得它。...虽然Snapchat使用另一种技术将数字特征放到真实面部,但增强现实已经领先一步,但它现在融合了新的ARKit工具,通过iPhone X的TrueDepth相机增强了脸部跟踪功能。...3Layers 跟踪 跟踪是ARKit的关键功能。它允许我们跟踪设备在现实世界中的位置,位置和方向以及现场直播。...您必须使用以下Apple设备之一: iPhone SE,iPhone 6s及更高版本 iPad 2017及更高版本 所有iPad Pro型号 虽然您可以无线模拟设备,但我建议您将其连接到计算机以加快处理速度...您需要允许在屏幕上查看相机看到的内容并继续使用ARKit项目 结论 我们刚刚开始AR。我们学到了什么是ARKit,它是多么多样化。您可以使用此框架构建非常酷的应用程序。
因为,有些崩溃日志是可以通过信号捕获到的,而很多崩溃日志却是通过信号捕获不到的。...如何全面监控崩溃信息 ---- 收集崩溃日志最简单的方法,就是打开 Xcode 的菜单选择 Product -> Archive。...我们采集到的崩溃日志,主要包含的信息为: 进程信息 崩溃进程的相关信息,比如崩溃报告唯一标识符、唯一键值、设备标识; 基本信息 崩溃发生的日期、iOS 版本; 异常信息 异常类型、异常编码、异常的线程...可以网上搜索一下44种异常编码,但常见的就是如下是三种: 0x8badf00d 表示 App 在一定时间内无响应而被 watchdog 杀掉的情况。...除了崩溃率,你还可以在这个平台上能查看次数、用户数等趋势。下图展示的是某一个 App 的崩溃在不同 iOS 系统、不同 iPhone 设备、App 版本的占比情况。
在iPhone中调试,大体上与上文 安卓中的移动页面调试 类似,区别主要是iOS系统中的一些限制,导致某些工具无法使用。 本文基于此,简要介绍在iPhone中如何调试页面。...,在iPhone上不好设置HOST,所以需要一些代理工具帮助我们 除了Windows平台中常用的代理调试工具Fiddler之外,还可以使用Mac中的常用代理工具 Charles Fiddler 与上文类似...安装后可在Mac证书列表中看到 ? 并设置相关的域 ? 根据Charles的提示,手机连接代理之后访问 chls.pro/ssl 安装证书,再访问即可 ? ?...二、审查元素查看页面输出 可以使用Chrome的设备模拟来查看页面 ?...手机上访问某个页面,选取进行调试,将会打开Safari的开发者工具,可以看到熟悉的几个面板 ? ? 除了审查元素查看日志之外,还可进行脚本的断点调试,查看网络请求等操作。
系统下,UITabbar上的item自定义背景色和图片问题 http://blog.sina.com.cn/s/blog_64cfe8f00102v0yn.html 3 xcode上version和build...,如何屏蔽emoji表情输入的问题,因为苹果自带的表情在其他设备上不支持。...xcode7更新之后使用真机调试,在IOS8的一台Iphone5手机上面没什么问题,IOS8的一台iphone6也没问题。...我发现console打印出的日志显示在安装的app的名字是乱码,通过查看build settings发现过product name改的是中文(解决方法)。...,不然即使App上传成功了,在构建版本一项中找不到。
在1部分导入A视频文件,点击 2 (照片)的时候会在 3 的位置上出现,此时,我们直接把视频按住,拖到桌面即可,是不是很简单啊! 2. 如何替换Xcode整个工程中的某个字符串A为 B ?...Xcode磁盘空间大清理 移除对旧设备的支持 路径:~/Library/Developer/Xcode/iOS DeviceSupport 移除旧版本的模拟器支持 路径:~/Library/Application...Only 该编译项用于设置是否只编译当前使用的设备对应的arm指令集。...第二个方法使用默认的模式(NSDefaultRunLoopMode)。 主线程就马上执行 ~~。 10.在模拟器上的UITextFeld中输入 _ “确定“后就会崩溃。真机上不会崩溃。...另外NSNull和nil、Nil、NULL具有本质上的区别。NSNull是一个对象,而nil、Nil、NULL只是给指针赋空值。 在另外,给一个赋值为nil的对象发送消息,不会产生异常。
从本质上讲,这意味着您的应用已崩溃… 这是Xcode中的样子: 在屏幕截图中,您会看到一些东西: 在左侧,您可以看到应用崩溃时运行的线程列表。您会看到导致崩溃的线程是主线程或“线程1”。...在继续之前,让我们讨论SIGABRT的一些误解和常见陷阱: SIGABRT错误通常与AppDelegate类声明无关,即使它在Xcode中突出显示了该行。...这是Xcode中的样子: 看看发生了什么事?该属性被称为otherButton,但插座仍被称为button。有一次我们更改了出口-因为新名称更好-并混淆了该应用程序,这使其崩溃。...这是您的应用程序运行时在Xcode底部,控制台或调试输出区域中看到的内容。您经常在这里看到调试消息,但是您知道也可以使用它来输入命令吗? 下次您的应用崩溃时,请尝试输入helpLLDB。...带有断点的代码暂停与应用程序崩溃不同,因此请不要让它造成混淆。 例如,异常断点将由不满足的约束异常触发,但这不会使您的应用程序崩溃。
main函数上显示“ Thread 1: signal SIGABRT”这个错误,终于在stackoverflow上找到了调试的办法: 原文链接: http://stackoverflow.com/questions...之前我们遇到的在main函数上的那个崩溃信息,如果想要调试就加入一个 an exception breakpoint ,它会在exception 被 cathc 的时候停下来,这样就可以追踪到造成 exception...,删除在设备调试的APP 2.强行退出XCode(Quitxcode),不要只是关闭,直接强行退出 3.删除系统生成的文件(~/Library/Developer/Xcode/DerivedData/)...,使用终端命令进入到相应目录,然后执行:rm-rf DerivedData/,等一会就可以了 4.重启XCode,连接完设备测试就可以了 5 iphone 接收摇动事件 http://www.cnblogs.com...引用文件注意 Xcode引用文件时,不要直接拷贝文件到项目目录,再以添加引用的形式引用,这时有可能报“找不到文件”错误,而且引用的文件目录是蓝色的,最好是直接饮用,选择copyitem的方式 16
Introduction XCode是macOS上开发app不可缺少的开发者工具,不管是开发macOS上的应用,还是iOS上的应用,都离不开XCode环境。...这里设置的每个项都会替换@rpath,从而达到灵活设置多个位置的目的。可以在下图中看到,我们使用了@loader_path这个变量,其值实际上是可执行程序的所在位置。.../symbolicatecrash ./*.crash ./*.app.dSYM > symbol.crash 生成的symbol.crash就是解析后的崩溃日志文件了,里面的符号经过了转换...最常用的就是Run和Archive了。 ? Group在XCode里面的作用非常明确,就是用来在逻辑上对源文件进行分类管理。...逻辑上的意思是,它并不会创建物理上的分组,而仅仅是视觉上、逻辑上的划分。所以有时候我们虽然在XCode中看到工程组织的井井有条,可是工程文件夹中的文件实际上是散落一片的。
现在,Apple 有自己的 Xcode Bots 解决方案,它可以在 OS X Server 上运行。但 Apple 的解决方案的缺点是你,是的,你 必须管理整个过程。...在 iPhone 模拟器上运行测试,因为这样做不需要设置代码签名(本教程不涉及)。...特别是如果您正在使用 KIF 运行 UI 测试,您可能会遇到这样的情况:构建机器的速度慢意味着您看到在真实设备上看不到的竞争条件,或者在您看不到的构建服务器上测试条纹本地。 ....您可以从 Travis 的日志中获得大量信息,但是如果没有设置脚本以在构建完成后将其上载到第三方服务,则无法获取崩溃日志。 . 所有测试都在模拟器上运行。...如果你有必须在设备上运行的测试,Xcode Bots 是一个更好的选择,因为它可以在模拟器和真实设备上运行 - 尽管这有责任管理配置和签名。 想知道更多?
领取专属 10元无门槛券
手把手带您无忧上云