iOS14适配汇总:【1、隐私权限相关:定位、相册、IDFA 2、KVC相关3、UIView相关;4、网络相关】

简介: iOS14适配汇总:【1、隐私权限相关:定位、相册、IDFA 2、KVC相关3、UIView相关;4、网络相关】

文章目录

  • 前言
  • I、隐私权限相关的适配
  • II、KVC相关的适配
  • III、UIView相关的适配
  • IV、第三方框架相关

  • 4.1 QMUIKit
  • V、网络相关
  • see also


前言

I、隐私权限相关的适配

  • 【定位授权新增了精确和模糊定位 可根据不同的需求设置不同的定位精确度】向用户申请临时开启一次精确位置权限的方案(不同场景可定义不同purposeKey)
  • iOS14隐私权限适配:【相册权限】

iOS14相册权限适配 :Limited Photo Access模式、PHAccessLevel(请求查询limited权限在 accessLevel 为readAndWrite 生效)、图片选择器

  • iOS14 适配:【IDFA Identity for Advertisers 广告标识符】(请求用户授权获取到正确信息)
  • 【 读取用户剪切板数据会弹出提示】 查找哪些SDK使用了剪切板,及时升级SDK。比如发现了JCore iOS SDK在iOS 14引用剪贴板,该行为导致APP被用户怀疑隐私泄露,请予以重视

II、KVC相关的适配

  • iOS14 适配:【KVC 不允许访问 UIPageControl的pageImage】解决方案:新增了API:preferredIndicatorImage设置image

III、UIView相关的适配

  • Xcode 12 + iOS 14适配:pop多层控制器至主页时,tabbar不显示问题

iOS14适配:【解决iOS14下pop多层控制器至首页时,tabbar不显示问题】方案1:重写pushViewController;方案2: hook hidesBottomBarWhenPush

  • 【 采用hook全局性地解决UITableViewCell兼容问题】往cell添加子视图的方式不规范,导致contentView 置于自定义控件的上层,引发界面无响应(注意处理相关方法)

因此问题涉及的是添加子视图cell.addSubView方法,因此与之对应的方法(UITableViewCell *)[SubView superview] 和cell.subviews方法 都要注意谨慎使用和处理

  • iOS14适配【UIDatePicker 更新 UI 样式】UIDatePicker默认样式UIDatePickerStyleInline;原来播轮样式UIDatePickerStyleWheels
  • iOS 14适配CALayerDelegate的displayLayer方法的处理机制(问题:无法显示图片)

IV、第三方框架相关

4.1 QMUIKit

iOS14 下首次唤起键盘卡住主线程

  • Main Thread Checker: UI API called on a background thread: -[UIWindow windowScene]
=================================================================
Main Thread Checker: UI API called on a background thread: -[UIWindow windowScene]
PID: 580, TID: 21138, Thread name: (none), Queue name: com.apple.root.user-initiated-qos, QoS: 25
Backtrace:
4   retail                              0x000000010576b628 __62+[UIWindow(QMUIUserInterfaceStyleWillChangeNotification) load]_block_invoke_3 + 296
Main Thread Checker: UI API called on a background thread: -[UIWindow traitCollection]
PID: 509, TID: 22376, Thread name: (none), Queue name: com.apple.root.user-initiated-qos, QoS: 25
Backtrace:
4   Housekeeper                         0x0000000100f3c000 __62+[UIWindow(QMUIUserInterfaceStyleWillChangeNotification) load]_block_invoke_3 + 92
  • 解决方案:如果你没使用QMUITheme,就直接注释掉代码即可。

image.png

@implementation UIWindow (QMUIUserInterfaceStyleWillChangeNotification)
#ifdef IOS13_SDK_ALLOWED
+ (void)load {
    return ;
}

如果你使用QMUITheme,则及时你更新4.2.1版本也无法根本性解决

这是因为系统自己在子线程访问了这些方法,只是 Main Thread Checker 对其做了兼容,发现 App 自己修改了这些方法的实现,才报错,没修改则不报错。

检测方式可以打条件符号断点,然后把 QMUI 那段代码注释掉,运行起来后会发现依然能命中这个断点,说明系统自身确实是在子线程访问了(UIKit 这种行为特别多,不只是这里)。

所以从原理上看,QMUI 命中这个主线程检测是不可避免的,目前只是做了一些优化,只有真正使用了 QMUITheme 组件时才会出现这个情况,没使用的时候就不会命中,以减少一部分的出错场景。这个优化将会跟随 4.2.1 版本发布。

V、网络相关

  • iOS14 开启 encrypted DNS 提高安全性,防止DNS 劫持
  • 1、iOS网络请求安全优化:SSL证书验证, 让Charles再也无法抓你的请求数据;对请求参数进行签名;2、不走全局proxy的方案;3、允许不验证SSL证书;4、拦截请求;5、DoH &DoT
目录
相关文章
|
6月前
|
监控 前端开发 安全
Spring-MVC使用JSR303及拦截器,增强网络隐私安全
Spring-MVC使用JSR303及拦截器,增强网络隐私安全
25 0
|
7天前
|
安全 网络安全 网络虚拟化
如何保护IP在线隐私,提高网络安全?
如何保护IP在线隐私,提高网络安全?
|
14天前
|
监控 安全 算法
网络安全与信息安全:保护您的数据和隐私
【4月更文挑战第11天】随着互联网的普及和技术的快速发展,网络安全和信息安全已成为我们日常生活中不可或缺的一部分。本文将探讨网络安全漏洞、加密技术和安全意识等方面的内容,以帮助读者更好地了解如何保护自己的数据和隐私。
18 3
|
1月前
|
安全 网络安全 数据安全/隐私保护
网络安全与信息安全:保护您的数据和隐私
随着互联网的普及和技术的快速发展,网络安全和信息安全已经成为我们日常生活中不可或缺的一部分。本文将介绍网络安全漏洞、加密技术以及安全意识等方面的知识,帮助读者更好地保护自己的数据和隐私。
22 4
|
1月前
|
安全 程序员 网络安全
网络安全与信息安全:保护您的数据和隐私
【2月更文挑战第30天】随着互联网的普及和技术的快速发展,网络安全和信息安全已成为我们日常生活中不可或缺的一部分。本文将介绍网络安全漏洞、加密技术以及安全意识等方面的知识,帮助读者了解如何保护自己的数据和隐私。
21 2
|
1月前
|
安全 网络安全 数据安全/隐私保护
网络安全与信息安全:保护您的数据和隐私
【2月更文挑战第30天】随着互联网的普及和技术的快速发展,网络安全和信息安全已成为我们日常生活中不可或缺的一部分。本文将探讨网络安全漏洞、加密技术和安全意识等方面,以帮助您更好地了解如何保护自己的数据和隐私。
|
1月前
|
安全 关系型数据库 应用服务中间件
连接rds设置网络权限
连接阿里云RDS需关注:1) 设置白名单,允许特定IP访问;2) 选择合适网络类型,如VPC或经典网络;3) 确保VPC内路由与安全组规则正确;4) 同VPC内可使用内网地址连接;5) 可启用SSL/TLS加密增强安全性。记得遵循最小权限原则,确保数据库安全。不同服务商操作可能有差异,但基本流程相似。
24 9
|
1月前
|
机器学习/深度学习 安全 算法
网络代理技术:保障隐私与增强安全
网络代理技术:保障隐私与增强安全
28 0
|
2月前
|
安全 网络协议 网络安全
探索网络定位与连接:域名和端口的关键角色
探索网络定位与连接:域名和端口的关键角色
44 0
|
2月前
|
监控 安全 网络安全
网络“裸奔”时代下,如何有效应对网络攻击、数据泄露和隐私侵犯?
网络“裸奔”时代下,如何有效应对网络攻击、数据泄露和隐私侵犯?
32 0

热门文章

最新文章