阿里巴巴iOS面试题(一)

348 阅读3分钟

当我们去面试一个工作,不管是什么类型的感觉,我们首先面对的第一道坎就是面试。因为自己的能力不足被刷下来,也许会有点遗憾,但是最遗憾的还是莫过于有能力但是面试没有发挥好而被刷下来。 首先的面试官都不是专业从事ios开发,他的问题都是比较基础的,所以他问的问题不必惊慌,保持镇定,然后保持平和的语气即可。废话不多说,现在接下来我给大家分享一些我整理的阿里面试题,希望能对各位大佬有小小的帮助。虽然很基础,但是望各位大佬耐心看下去,也许有意想不到的收获。

1.dSYM你是如何分析的?

所以首先我们要知道dSYM是什么?什么是dSYM文件Xcode编译项目后,我们会看到一个同名的dSYM文件,dSYM是保存16进制函数地址映射信息的中转文件,我们调试的symbols都会包含在这个文件中,并且每次编译项目的时候都会一个新的dSYM文件,位于/Users/<用户名>/Library/Developer/Xcode/Archives目录下,对于每一个发布版本我们都很有必要保存对应的Archives文件(AUTOMATICALLY SAVE THE DSYM FILES这篇文章介绍了通过脚本每次编译后都自动保存dSYM文件)。

2.然后我们还有了解dSYM的作用是什么呢?

现在来阐述一下吧。当我们软件release模式打包或上线后,不会像我们在Xcode中那样直观的看到用崩溃的错误,这个时候我们就需要分析crash report文件了,iOS设备中会有日志文件保存我们每个应用出错的函数没存地址,通过Xcode的Organizer可以将iOS设备中的DeviceLog导出成crash文件,这个时候我们就可以通过出错的函数地址去查询dSYM文件中程序对应的函数名和文件名。大前提使我们需要有软件版本对应的dSYM文件,这也是为什么我们很有必要保存每个发布版本的Archives文件了。

3. 我们又如何将文件一一对应呢?

每一个xx.app和xx.app.dSYM文件都有对应的UUID,crash文件也有自己的UUID,只要这三个文件的UUID一致,我们就可以通过他们解析出正确的错误函数信息了。1.查看xx.app文件的UUID,terminal中输入命令:dwarfdump--uuid xx.app/xx(xx代表你的项目名)2.查看xx.app.dSYM文件的UUID,在terminal中输入命令:dwarfdump--uuid xx.app .dSYM文件的UUID,在terminal中输入命令:dwarfdump--uuid xx.app.dSYM。3.crash文件内第一行incident identifier就是该crash文件的UUID。

4.dSYM工具的作用是什么了?

它的使用步骤是怎样的的了?接下来我就来献丑了。就是将命令封装到应用,在解决bug上提供了便利。使用步骤也很简单:1.将打包发布软件时xcarchive文件拖入软件窗口内的任意位置(这里是支持多个文件同时拖入,注意:文件名不要包含空格)2.选中任意一个版本的xcarchive文件,右边会列出该xcarchive文件支持的cpu类型,选中错误对应的cpu类型。3.对比错误给出的UUID和工具界面中给出的UUID是否一致。4.将错误地址输入工具的文本框中,点击分析。

不积跬步无以至千里,重要的是每天都进步一点点,而不是原地踏步,只有进步了,今天就不算没有意义的。大家也可以在评论区讨论,互相分享,互相进步。希望哪里有错误的话,还请多多指教,一起进步,今天就到这里了。