小扎的Facebook 搞炸了几十万个iOS应用程序(组图)

今天,国外网友炸锅了。

他们发现自己设备上的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 的轮子,也有可能翻车翻到水沟里去。。。

推荐阅读