那些防不胜防的坑

2024-02-17 16:59
文章标签 防不胜防

本文主要是介绍那些防不胜防的坑,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

情景

5.6.1版本上线后,有用户反馈使用键盘语音一直提示录音失败。最终排查出问题出现的条件是:iOS12系统&输入法的后台应用刷新关闭&输入法无后台定位权限&输入法安装包使用Xcode10进行的打包&使用了后台音频权限。以上条件少任何一个条件都无用户反馈的问题。Xcode10是苹果与iOS12系统一起推出的一个新版本。

针对情景中提到的后台权限问题,大家了解多少呢?你所在的项目是否也正在使用此权限呢?下面就给大家普及下相关知识。

后台权限介绍

应用的运行状态包括:Not running、Inactive、Active、Background、Suspended。当应用处于Background的状态时,应用在后台一般最多存活10分钟,然后就会被系统强制进入 Suspended 状态。而 iOS 为了在某些情况下提供更好的体验,提供了一些选项,只要满足这些选项的条件,就可以在后台运行很长的一段时间。但是苹果对后台权限的使用管理很严格,需要提供证据证明应用需要此类权限,否则无法通过审核。如下图,是iOS提供的后台运行方式列表。今天我们问题中提到的两个后台权限就是Audio and AirPlay和Location updates。

 

 

后台音频(Audio and AirPlay)

这个权限包含四种使用场景,分别是:音频的播放,录音,AirPlay 及画中画的视频播放。 

音频的播放:在播放音频时,即使应用退到后台,只要一直有音频在播放,那应用就可以一直在后台运行。

录音:应用可以请求使用麦克风,而当开启了此后台选项,应用在使用麦克风的时候,即使退到后台,也可以一直在后台运行。而当该类应用退到后台后,iOS 系统的状态栏会变成红色,并在状态栏中显示正在使用麦克风的应用的名称,如下图所示。iOS第三方输入法的语音功能都是使用此权限使用在键盘上使用语音功能。 

AirPlay:AirPlay 是指将iOS设备或者Mac设备上的音视频,同步到另一个设备中播放。比如:将iPhone上的音乐通过蓝牙的方式在汽车的蓝牙音响上播放。此功能一般用于多端及多屏的交互。

画中画的视频播放:画中画是 iPad 版本的iOS 9新增加的功能,可以在 iOS 的桌面,或者其他应用的界面的上面播放视频,从而该视频区域所属的应用就可以后台运行了。此功能现在只在 iPad 应用中提供。

 

后台定位(Location updates)

一般用于导航应用中,开启此选项后,应用退到后台,还可以得到系统的定位更新,从而使得应用可以根据定位的变化做出不同的反应。

问题原因

 

通过上面的介绍,我们了解到后台音频权限和后台定位权限的使用场景,感觉两个权限之间没有任何关系。但是在苹果2018年9月份推出的12系统中任务执行逻辑发生了变化。

iOS 12系统上对应用的后台任务执行进行了限制。当应用功能使用后台语音权限时,应用没有后台定位权限&后台应用刷新开关关闭&使用Xcode10打包(sdkVersion为12.0以上),后台执行的权限就会被限制,后台任务执行时长从3分钟降低为30秒,且后台启动录音会失败。从而导致输入法键盘语音功能App语音SDK启动录音失败,并且后台无法保活。 

 

解决方案

 

1.使用Xcode9.4.1版本进行打包,但是苹果要求从2019年3月1日后提交的版本必须使用Xcode10进行打包;

2.当使用Xcode10进行打包&无后台定位权限时&关闭后台刷新开关时,用户使用语音前引导用户开启后台刷新开关。

经验总结

 

在iOS更新大版本的时候,如新增12系统,不仅要关注应用在新系统中的使用情况,还需要关注Xcode版本与原有版本之间存在的差异,将问题提前暴露。但是情景中的问题也不一定发现哦,因为官方文档中没有关于后台音频权限逻辑变化的任何描述。所以看到此文章的小伙伴们,你们的运气真是大大的好呀,少踩一个大坑了哦,快给自己鼓鼓掌吧~

这篇关于那些防不胜防的坑的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/718436

相关文章

spring事件防不胜防啊

ApplicationListener @Componentpublic class MyInterfaceEventListener implements ApplicationListener< T extends ApplicationEvent> {@Overridepublic void onApplicationEvent(ApplicationEvent event) {//

观点 | 微软漏洞防不胜防,应当推广国产基础软件

前不久,永恒之蓝席卷全球,已经有90个国家遭到攻击。国内教育网是遭到攻击的重灾区。在6月27日,新的病毒“Petrwrap”由乌克兰和俄罗斯开始爆发,逐渐蔓延到欧洲多国。据专家介绍,“Petrwrap”病毒通过 Windows 漏洞进行传播,同时会感染局域网中的其它电脑。电脑感染勒索病毒后,会被加密特定类型文件,导致电脑无法正常运行。而这种勒索病毒在内网系统中,主要通过主要通过 Windows

通过xss所引起的信息泄露,防不胜防!

话不多说直接上: 信息搜集,通过google语法 site:"*.redacted.com" 优化一下: site:"*.redacted.com" -www -blog -mail 之后,利用subfinder、assetfinder和masass等被动枚举工具收集与目标相关的子域列表,并将它们保存在一个文本文件中。 subfinder -d redacted.com -all

防不胜防,一种元器件造假新套路出现了

如今,元器件造假游戏升级了。除了物理/传统的仿造方法(顶部黑色部分、重新打字或拆机二次使用)外,制(售)假分子还找到了欺骗潜在客户的新方法。最近,一种第三方机构的物理测试无从鉴别的新型犯罪出现,有不法分子将“木马代码”嵌入到 FPGA 或内存组件中,叫人防不胜防…… 元器件行业灰色地带——造(售)假产业 几十年来,假冒元器件链一直是存在于供应链之中——这是一种隐晦的、让人深恶痛绝的不正之

企业文件泄漏防不胜防?安全防护3步走!

有一些管理者认为公司从未曾发生过数据泄密事件而心存侥幸,但数据泄密的代价,只需发生过一次,就足以给企业带来巨大的损害。 十四五规划中,“数据安全”和“网络安全”多次出现,加上《数据安全法》、《个人信息保护法》、《网络安全法》等法律法规的相继发布,充分体现出国家对数据安全、网络安全的重视。 常见的企业数据泄密方式有3种: 01、公有云存储泄密 某创业团队历经大半年研发

Python 中那些令人防不胜防的坑(二)

大家好,我是 Rocky0429,一个正在学习 Python 的蒟蒻… 人不能两次踏入同一条河流,在无数次踩进同样的坑里之后,我觉得我有必要整理一下,这是 Python 防坑系列第二篇。 如果你还没读过第一篇,请点击下面链接: Python 中那些令人防不胜防的坑(一) 这会是一个系列,每篇 5 个,系列文章更新不定,不想错过的,记得点个关注,不迷路。

2020云盘点:“删库跑路”防不胜防,企业等级保护亟待执行

2020年2月23日,微盟集团旗下SaaS业务服务突发故障,宕机时间持续一周左右,基于微盟SaaS业务的小程序宕机,受波及商户线上生意几乎“停摆”。   年度热点话题04 “删库跑路”防不胜防, 企业等级保护亟待强制执行   事件起因:微盟研发中心核心运维人员贺某,通过个人VPN登入公司内网跳板机,对微盟线上生产环境及数据进行了严重的恶意破坏,导致微盟的SaaS业务服务突然宕机,商

最新骗局-防不胜防呀

在网上看到的最新骗局,转自 http://link.365bloglink.com/go.php?idx=31226 1) 建行一同志转送: 今天经过一栋大楼门口,门口有一提款机。有一个老伯,一直看著我走过他身边,突然叫住我。他说他不识字,拿一张提款卡要我帮他在大楼门口的自动提款机取钱。我回答我无法帮你取,叫警卫帮你。结果,他就回答我说不用了,继续找其他路人帮他取钱。朋友们要记住---取款

防不胜防的爬虫-业务风控的必要性分析

1、背景 随着互联网与移动技术在各行业的发展,业务场景也发生了根本性的转变,攻击面、攻击点呈现爆发式增长,欺诈场景也呈现多样性变化。黑灰产每年对企业造成的损失正在成倍上涨,目前各类业务系统较为频发的是如购物电商类APP、演唱会门票类APP、大促活动、短视频等平台养号等(其中包括虚拟账号注册、暴力破解、密码撞库、代理IP邓丽、黑产设备等于、秒抢劵、虚假小号、刷单、刷评论等)。 传统的爬虫防护手段主

伦敦银现大跌防不胜防?

伦敦银的单价比较低,而且价格波动本来就比伦敦金要大,但它跟伦敦金一样,拥有数十倍的资金杠杆,所以交易的过程中,投资者需要更加严格地进行风险控制,否则很容易被突如其来的不利的行情波动受伤。 不少初学者在进入伦敦银市场的时候,都比较喜欢做多,他们也经常担心行情突如其来的下跌,会让自己防不胜防,但情况真的会是这样吗?从历史走势上看,伦敦银的波幅在1%以上的日子不在少数,银价在一些特殊消息的推动一下