美文网首页
iOS13适配中遇到的问题

iOS13适配中遇到的问题

作者: 锦箫_1 | 来源:发表于2019-10-31 11:07 被阅读0次

又是一年一度的苹果大版本更新啦

最近IOS大版本苹果发布后,由于苹果升级Xcode以及IOS13新功能属性进行变动,用Xcode11进行编译时导致我们的APP在IOS13以上版本运行时目前发现的问题总结了几点:

一.友盟iOS13报错([_LSDefaults sharedInstance]: unrecognized selector sent to class)。

因友盟老版本SDK未做升级,没有适配IOS13,导致崩溃。

解决方案:这个报错友盟已经提示了,需要把UMCCommon更新到最新版本2.1.1。

二、私有KVC

  • (void)setValue:(nullable id)value forKeyPath:(NSString *)keyPath在Xcode10上编译不会有问题,但是在Xcode11上编译的会崩溃。并且- (void)setValue:(nullable id)value forKey:(NSString *)key方法没问题,- (void)setValue:(nullable id)value forKeyPath:(NSString *)keyPath会崩溃

解决方案:更换方法。- (void)setValue:(nullable id)value forKeyPath:(NSString *)keyPath更换为- (void)setValue:(nullable id)value forKey:(NSString *)key

三、presentViewController跳转不占全屏

会出现这种情况是主要是因为我们之前对UIViewController里面的一个属性,即modalPresentationStyle(该属性是控制器在模态视图时将要使用的样式)没有设置需要的类型。在iOS13中modalPresentationStyle的默认改为UIModalPresentationAutomatic,而在之前默认是UIModalPresentationFullScreen。

这个不受Xcode版本的影响,只要是iOS13的系统,没有显式设置modalPresentationStyle,就会有这个问题。

解决方法:设置modalPresentationStyle为0.目前涉及到了所有二级页面都会出现这个问题。

具体代码:

 WHelpController *newDL =[[WHelpController alloc]init];
 newDL.modalPresentationStyle = 0;
 [self presentViewController:newDL animated:NO completion:nil];

四、即将废弃的 LaunchImage

从 iOS 8 的时候,苹果就引入了 LaunchScreen,我们可以设置 LaunchScreen来作为启动页。当然,现在还可以使用LaunchImage来设置启动图。不过使用LaunchImage的话,要求我们必须提供各种屏幕尺寸的启动图,来适配各种设备,随着苹果设备尺寸越来越多,这种方式不够 Flexible。而使用 LaunchScreen的话,会变的很简单, LaunchScreen是支持AutoLayout+SizeClass的,所以适配各种屏幕都不在话下。 ⚠️,从2020年4月开始,所有使⽤ iOS13 SDK 的 App 将必须提供 LaunchScreen,LaunchImage即将退出。

五、暗黑模式

原理

1.将同一个资源,创建出两种模式的样式。系统根据当前选择的样式,自动获取该样式的资源

2.每次系统更新样式时,应用会调用当前所有存在的元素调用对应的一些重新方法,进行重绘视图,可以在对应的方法做相应的改动

在开发中,如果用的系统控件(如cell、tableview的背景色)未设置背景色(或者为透明),则进入暗黑模式后,控件背景色变为黑色。

可以每一个页面设置,也可以整体设置。

之前苹果只有一种模式,导致现在IOS13上线后,在新模式-暗黑模式下UI出现异常显示。

解决方案:1.APP强制关闭暗黑模式,在配置文件环境中进行设置,默认APP使用原有样式,用户操作不会影响APP展示效果。
2.APP适配暗黑模式,这个对于一般的APP适配量比较大。

六.第三方登录

苹果更新的审核规范中提到使用第三方登录的APP必须要将apple登录作为一个可选择项

Sign In with Apple will be available for beta testing this summer. It will 
be required as an option for users in apps that support third-party 
sign-in when it is commercially available later this year.

另:Xcode11更新后才会出现以上问题,如果用Xcode10不会出现适配问题。

目前发现的就这六个问题,欢迎各位提供其它问题,及时发现并解决问题。

欢迎有问题在评论区留言,我们一起解决。

相关文章

  • iOS13适配(更新中)

    对于iOS13适配汇总以及遇到的问题注意:以下适配内容,必须适配的会以"必须"标出 1. Dark Model(必...

  • iOS13适配中遇到的问题

    又是一年一度的苹果大版本更新啦 最近IOS大版本苹果发布后,由于苹果升级Xcode以及IOS13新功能属性进行变动...

  • iOS13适配中遇到的问题

    1. presentViewController控制器不占全屏 解决办法 注意一定是UIModalPresenta...

  • iOS13 适配问题 看这一篇就够了

    技术参考: apple login IOS13适配-详细 iOS 13 适配(持续更新中) iOS13适配 掘金 ...

  • iOS 13适配

    技术参考: apple login IOS13适配-详细 iOS 13 适配(持续更新中) iOS13适配 掘金 ...

  • iOS13适配(更新中)

    对于iOS13适配汇总以及遇到的问题 Dark Model iOS 13推出了暗黑模式Dark Model,UIK...

  • iOS13适配遇到的问题~~

    总体来说,我们的项目需要适配的地方倒是不多,但是这个问题却不知道怎么出现的,UITableViewCell设置ac...

  • WKWebView 在 iOS13 iPadOS 获取到的Use

    前阵子适配 iOS13 的时候遇到一个关于WKWebView设置UserAgent的问题,在iPadOS上,WKW...

  • iOS13适配更新总结

    前言: iOS13的API的变动和适配问题,我从新特性适配、API 适配、方法弃用、工程适配、SDK 适配、其他问...

  • iOS13 适配详细

    对iOS13 适配的总结,下面有些是自己遇到的,有些是收集的,希望能给大家一些思路 iOS13中presentVi...

网友评论

      本文标题:iOS13适配中遇到的问题

      本文链接:https://www.haomeiwen.com/subject/jtjeectx.html