iOS 14踩坑:真机调试和UIPageControl crash

5,326 阅读1分钟

UIPageControl crash

今天查看 Bugly crash 日志发现新增了一个bug,发生了10多次,表示差异,查看了一下日志发现全部是发生在iOS 14系统上面,看来追新的用户还是大有人在啊,错误日志如下:

由此可以看出是UIPageControl使用KVC的方式给某个属性赋值导致的crash,打开项目很快就找到了问题代码:

使用KVC的方式给UIPageControl的_pageImage和_currentPageImage属性赋值以实现UIPageControl设置图片,这种方式在iOS 14一下系统上没有任何问题,但在iOS14上居然发生了crash,情况比较紧急,简单做了修改如下:

为了校验问题,把测试机升级到了iOS 14 Bate版,发现Xcode11.5无法真机调试,又下载了iOS14.0-beta1 真机调试包,通过测试确认在iOS 14.0上运行正常。

附上链接: 百度云盘地址  提取码: etwq 

关于如何导入真机调试包

  1. 找到Xcode应用程序,查看包内容,逐步找到DeviceSupport所在路径:/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/DeviceSupport
  2. 把真机调试包解压到DeviceSupport文件夹下
  3. 完全退出Xcode,重新启动,真机调试包生效,iOS 14系统可以正常运行调试了

Xcode对不同系统版本的支持 (~/Library/Developer/Xcode/iOS DeviceSupport)

每次添加新的调试包,真机调试都要等很长时间来安装这个系统版本的调试文件,而且文件会占很大存储空间,2G左右,通常我们会删除一些不常用的调试文件来节省空间,因为即使删了调试文件,只要真机调试包还在,下次运行时Xcode会再次自动下载调试文件的。

最新真机包下载地址:github.com/ywdonga/Dev…