iOS13适配总结

1. 系统设置中深色模式下,view的背景色默认为深黑色,影响整个APP,能够修改回默认白色ios

(1)APP统一修改,在info.plist中强制白色模式git

<key>UIUserInterfaceStyle</key>
 <string>Light</string>
复制代码

(2)单个view及其子view强制修改默认模式,解除系统深色模式影响github

view.overrideUserInterfaceStyle = UIUserInterfaceStyleLight;复制代码

(3)修改window的默认模式,对整个APP有效,官方不推荐使用,推荐修改info.plistbash

[UIApplication sharedApplication].keyWindow.overrideUserInterfaceStyle = UIUserInterfaceStyleLight;复制代码

2.DeviceToken获取方式改变,如下方式兼容全部系统微信

#include <arpa/inet.h>
-(void)application:(UIApplication *)application
didRegisterForRemoteNotificationsWithDeviceToken:(NSData *)deviceToken
{
    if(![deviceToken isKindOfClass:[NSData class]])return;
    const unsigned *tokenBytes =(const unsigned *)[deviceToken bytes];
    NSString *hexToken =[NSString stringWithFormat:@"%08x%08x%08x%08x%08x%08x%08x%08x",
                          ntohl(tokenBytes[0]),ntohl(tokenBytes[1]),ntohl(tokenBytes[2]),
                          ntohl(tokenBytes[3]),ntohl(tokenBytes[4]),ntohl(tokenBytes[5]),
                          ntohl(tokenBytes[6]),ntohl(tokenBytes[7])];
    NSLog(@"deviceToken:%@",hexToken);
}
复制代码

3.KVC 限制,用kvc修改私有属性会崩溃app

崩溃写法:ide

[_textField setValue:self.placeholderColor forKeyPath:@"_placeholderLabel.textColor"];复制代码

修改写法:ui

_textField.attributedPlaceholder =[[NSMutableAttributedString alloc]initWithString:placeholder attributes:@{NSForegroundColorAttributeName : self.placeholderColor}];复制代码

4.控制器模态跳转默认效果改变,新版默认跳转至新VC不全屏。spa

修改成全屏效果,跳转前修改新VC的modalPresentationStylecode

if(@available(iOS 13.0,*)){
        newVC.modalPresentationStyle = UIModalPresentationFullScreen;
    }
    [oldVC presentViewController:newVC animated:YES completion:nil];
复制代码

5.新浪微博SDK崩溃问题

微博SDK3.2.5版本, 已解决崩溃问题,但没有同步到cocoapods,致使cocoapods上最新版及友盟SDK中 有崩溃问题

解决方法: 手动在GitHub下载最新微博SDK,替换项目中的同名文件便可

github.com/sinaweibosd…

6.友盟更新,适配iOS13

info.umeng.com/detail?id=1…

UMCCommon须要升级到2.1.1最新版本

UMCShare须要升级到6.9.6最新版本

pod 'UMCCommon','~> 2.1.1'

pod 'UMCShare/UI','~> 6.9.6'

pod 'UMCShare/Social/WeChat','~> 6.9.6'

pod 'UMCShare/Social/QQ','~> 6.9.6'

pod 'UMCShare/Social/Sina','~> 6.9.6'

7.个推SDK须要升级到最新版2.4.1.0

pod 'GTSDK','2.4.1.0'

8.CYLTabBarController须要升级到最新版本

控制器跳转会引起TabBarController显示异常

pod 'CYLTabBarController','~> 1.28.3'

9. UIWebView废弃,适用范围ios(2.0,12.0),几率性被审核打回

微博SDK3.2.5版本已更新至WKWebview

10.MPMoviePlayerController在iOS13废弃

11. CNCopyCurrentNetworkInfo

developer.apple.com/documentati…

12.UISegmentedControl 默认样式改变

默认样式变为白底黑字

13.APPID登陆,使用三方登陆的APP要加APPID登陆

审核指南4.8使用Apple登陆, 必须在2020年4月以前加入
developer.apple.com/app-store/r…

专门使用第三方或社交登陆服务的应用程序(如Facebook登陆,Google登陆,使用Twitter登陆,使用LinkedIn登陆,使用亚马逊登陆或微信登陆)来设置或验证用户的主账户使用该应用程序还必须提供与Apple等同的登陆选项。

用户的主要账户是他们与您的应用程序创建的账户,用于识别本身,登陆和访问您的功能和相关服务。

若是符合如下条件,则无需使用Apple登陆:

  • 您的应用专门使用您公司本身的账户设置和登陆系统。
  • 您的应用是教育,企业或商业应用,须要用户使用现有的教育或企业账户登陆。
  • 您的应用使用政府或行业支持的公民身份识别系统或电子ID来验证用户身份。
  • 您的应用是特定第三方服务的客户,用户须要直接登陆其邮件,社交媒体或其余第三方账户才能访问其内容。

14.即将废弃的 LaunchImage

从 iOS 8 的时候,苹果就引入了 LaunchScreen,咱们能够设置 LaunchScreen来做为启动页。固然,如今你还可使用LaunchImage来设置启动图。不过使用LaunchImage的话,要求咱们必须提供各类屏幕尺寸的启动图,来适配各类设备,随着苹果设备尺寸愈来愈多,这种方式显然不够 Flexible。而使用 LaunchScreen的话,状况会变的很简单, LaunchScreen是支持AutoLayout+SizeClass的,因此适配各类屏幕都不在话下。 从2020年4月开始,全部使⽤ iOS13 SDK 的 App 将必须提供 LaunchScreen,LaunchImage即将退出历史舞台

相关文章
相关标签/搜索