好久不写博客,稍有生疏,感谢一直以来你们的支持。最近我又回到了本身的老本行——
iOS开发
。以后的博客应该大部分是iOS相关了,固然,我也会持续关注前端的技术,也欢迎朋友们来捧场哦😸😸😸
今天要讲的是开发过程当中遇到的一个小问题,看到网上也有不少人为之困扰。几番搜索以后,找到了解决方案,但愿该方案也能对你们有所帮助。前端
相信不少开发者收集数据都会用到友盟、bugly之类的工具,笔者就在使用bugly时遇到了一个很棘手的问题:iOS9的系统下,会有一个频发的崩溃,bugly上的描述为SEGV_ACCERR
。json
这个描述大都指对象提早释放,然而堆栈信息也没能提供特别有用的信息来帮助开发者定位该问题。笔者和测试小伙伴反复操做都很难找到必现步骤,逐步打断点调试也没法找到提早释放的对象。app
原本想提升适配版本到iOS10,可是又没法抛弃那一群不会更新系统的小白用户们。因而伴随着漫天飞舞的柳絮,我陷入了沉思😔😔iphone
抱着试一试的心态,反复换着关键词查,终于。。。在stackoverflow上找到了一个支持量为2
的解决方案。这个方案讲到:该崩溃与项目中的图片资源相关,具体是伽马值为P3的图片。工具
这个方案看着不太靠谱,可是能怎么办,固然是选择试一试咯,我也很绝望啊。测试
如下为该解决方案的翻译:spa
ipa
。.zip
。Payload
文件夹,该文件夹中是你的app bundle
。app bundle
。命令以下:cd path/Payload/xxx.app
Assets.car
文件。命令为:find . -name 'Assets.car
使用assetutil命令找到任何包含着16-bit或者P3的资源文件。对上一步找出的每一个Assets.car
执行以下命令:sudo xcrun --sdk iphoneos assetutil --info /path/Assets.car > /tmp/Assets.json
翻译
第6步里面有两个路径,第一个路径
/path/Assets.car
不要照抄,替换为第五步中查找出的路径。
使用open命令打开第六步生成的Assets.json。命令为:open /tmp/Assets.json
设计
在第7步打开的文件中查找P3
字段,对应的Name
字段即为该资源的名称,删除相应资源,或者修改文件格式便可。
😛如下为笔者的操做过程,你们能够对照使用:调试
使用以上方案,笔者找到了伽马值为P3的图片,并和设计小哥哥联系修改了该资源。回测以后,奔溃问题已再也不复现,若是该方案也帮助到你了,不妨点个赞吧。
下一周的主题还在构思中。。。记得常回来看看👋