今天,国外网友炸锅了。
他们发现自己设备上的iOS 应用都在疯狂崩溃,一大堆 App 受到了影响。
要知道,现在国外疫情严峻,大家都只能宅在家玩手机,遇到这种情况真的要命。。。
小众软件也就不提了,像 TikTok ( 抖音国际版 )、 Quora ( 类似知乎 )、 Spotify ( 音乐软件 )、 Pinterest ( 图片社交软件 )这样的主流软件也都跪了。
这些软件的常用程度,跟咱们手机上的抖音、网易云音乐、知乎、微博等等差不多。
而且崩的很彻底,打开就闪退,再打开再闪退,开开开,退退退。
就是下面这样。。。
这特么简直不能忍啊,用啥软件啥崩溃,还玩个锤子手机!
软件崩了,网友们只是暂时用不了,最多发发推骚扰一下各大 App 而已。
但以维护软件为工作的程序员们就不一样了,他们都快哭了。。。
很快程序员们就开始找起元凶,针对网上发布的崩溃日志分析了起来,最后不少人把罪魁祸首指向了小扎的 Facebook 。
具体而言,这个锅得 iOS 版的 Facebook SDK 来背。。。
Facebook 大家都不陌生,没想到这位坐拥 30 亿用户的社交软件巨头也有这么翻车的一天。
但 Facebook 翻车管其他软件屁事?怎么其他软件就被坑了呢?
这事还得从 SDK 说起。
SDK 就是软件开发工具包,有些公司会出售自己软件的某一功能,把它封装成一个包,其他需要这个功能又不想从头开发的公司,可以直接氪金了事。
举个例子,滴滴出行。
在选择目的地时,滴滴会自动获取用户的当前位置,或者让用户在地图上选择一个上车点。
这些功能对于滴滴这样的出行公司来说,可以说是重要的一匹! ~
但。。。
这套服务并不是他们自己的东西,看右下角 ~
再来! ~
没错,这套服务是滴滴从腾讯地图那边搞来的。
尽管这些功能非常重要,但是滴滴没有必要再自己开发一次,说白了,没必要重复造轮子。
他只需要找成熟服务商购买自己需要的 SDK ,再加入到自己的软件中,需要的时候调用相应的接口就能方便、快捷的完成相应的效果。
他只用在完成后,对最后结果进行呈现就可以了 ~
这样的好处显而易见,开发一套功能的成本是巨大的,开发后还需要调试,可能还会出现问题。
直接花点钱跟成熟的服务商购买省事又省时。
对于拥有成熟功能的公司这也是一件好事,把自己开发出来的功能卖给需要的人,也是一笔营收 ~
Facebook 作为顶级互联网大厂,当然也有不少 SDK 。
这次出问题的,就是 Facebook 的一个用来支持 Facebook 共享、签到、登录的 SDK 。
软件用了这个 Facebook SDK ,在启动环节就会调用,往 Facebook 服务器上发送相关指令。
有网友通过崩溃代码分析出, FB SDK 从 FB 服务器那边收到了一个限制性的参数,但是这个参数的类型跟所需要的类型不匹配。
你通过家政公司叫了一个保姆来搞卫生,结果来了一个电工,可不得崩溃么。
从程序运行的角度来说,返回的参数类型对不上号,程序没法理解自然就崩了,连带着拖累了所有使用这个 SDK 的软件。。。
目前 Facebook 没有正面回应这个事情,但是在出现问题后的 3 个小时后在服务器上发布了一个补丁。
但是因为这个 Facebook SDK 实在太多人用了,17 年的时候网友曾在 Quora 上说明过这个 SDK 有 20 多万个软件在用。
所以这一波操作把这么多软件都给搞炸了。
不得不说, SDK 的存在大大方便了技术实现,造轮子多麻烦啊,直接拿成熟的轮子来用简直爽。
但谁会想到呢,就算你拿的是坐拥 30 亿用户的 Facebook 的轮子,也有可能翻车翻到水沟里去。。。