iOS15 问题记录

1,679 阅读2分钟

如题,在这里记录一下,设备升级到iOS15之后项目中遇到的问题,一个是线上用户反馈(投诉)过来的,一个是解决这个问题的时候,又发现的新问题。

在这里也建议大家,如果发新版的时间,刚好卡在苹果升级系统的时间前后,一定要让测试用测试机,升级到最新系统,跑一下主流程,尤其是像14升15,这种重大的系统升级,指不定就有“彩蛋”,切记!!!!

1.LSApplicationQueriesSchemes 限制

问题场景: 我们的App大多都会有分享的功能,或者是三方支付,这样我们就要接很多的三方平台,需要做跳转到三方的功能,就需要设置scheme

Targets --> Info --> URL Types

iOS15之前 对scheme是没有限制的,写多少个都能用,但是15之后,系统对LSApplicationQueriesSchemes数量限制为50个,对于排在50位以后的scheme[UIApplication sharedApplication] canOpenURL: 会失效,返回结果一律为NO

所以就会产生一个bug,对于失效的scheme,App中调用,直接处理为"App未安装,请安装后使用",造成了一个阻塞流程的问题。

解决方案: 对于我们的项目,是删除掉了一些已经不在使用的三方平台的scheme,保证在50个之内。但是如果你的项目也超出了这个限制,但是所有的scheme都需要使用,那么。。。你有什么更好的方法解决,还有评论区告诉我一哈。

2.UITableView 新增属性 sectionHeaderTopPadding

这个问题,网上很多其他博主也都写过了,所以,升级系统的节骨眼上,必须要重视新系统的测试。不然,你不测试,上线之后就是一个大bug。

当UITableViewStyle为UITableViewStylePlain时,会默认给每个section header增加高度,默认值为[UITableViewAutomaticDimension]。 这个新增属性导致我们自定义的一个列表类型的弹层,最下面的一个按钮无法点击到。

解决方案:

if (@available(iOS 15.0, *)) { 
    self.tableView.sectionHeaderTopPadding = 0; 
}