小扎的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 的轮子,也有可能翻车翻到水沟里去。。。
-->
`,
"script":[]
}
, "gg_rightside": {
"html":`
`,
"script":[{"exec":`(function(w,q){w[q]=w[q]||[];w[q].push(["_mgc.load"])})(window,"_mgq");`}]
}
, "gg_duturandom": {
"html":`
`,
"script":[]
}
, "gg_square": {
"html":`
`,
"script":[]
}
, "gg_topbanner": {
"html":`
`,
"script":[]
}
, "gg_middlesquare": {
"html":`
`,
"script":[]
}
, "gg_dutu": {
"html":`
`,
"script":[]
}
, "gg_botline": {
"html":``,
"script":[]
}
, "gg_dututop": {
"html":`
`,
"script":[]
}
, "gg_shipintop": {
"html":`
`,
"script":[]
}
, "gg_inContent": {
"html":`
`,
"script":[{"exec":`(function(w,q){w[q]=w[q]||[];w[q].push(["_mgc.load"])})(window,"_mgq");`}]
}
, "gg_shipinrandom": {
"html":``,
"script":[]
}
, "gg_sideSticky": {
"html":`
`,
"script":[]
}
, "gg_bottombanner": {
"html":`
`,
"script":[{"exec":`(function(w,q){w[q]=w[q]||[];w[q].push(["_mgc.load"])})(window,"_mgq");`}]
}
, "gg_marquee": {
"html":`
`,
"script":[]
}
}
const adEnv={
"gg_header": {
"html":``,
"script":[{"exec":`(function(){/*
Copyright The Closure Library Authors.
SPDX-License-Identifier: Apache-2.0
*/
'use strict';var g=function(a){var b=0;return function(){return b
=b||null!=a.a&&0!=a.a.offsetHeight&&0!=a.a.offsetWidth||(fa(a),D(a),l.setTimeout(function(){return E(a,b-1)},50))},fa=function(a){var b=a.c;var c="undefined"!=typeof Symbol&&Symbol.iterator&&b[Symbol.iterator];b=c?c.call(b):{next:g(b)};for(c=b.next();!c.done;c=b.next())(c=c.value)&&c.parentNode&&c.parentNode.removeChild(c);a.c=[];(b=a.a)&&b.parentNode&&b.parentNode.removeChild(b);a.a=null};var ia=function(a,b,c,d,e){var f=ha(c),k=function(n){n.appendChild(f);l.setTimeout(function(){f?(0!==f.offsetHeight&&0!==f.offsetWidth?b():a(),f.parentNode&&f.parentNode.removeChild(f)):a()},d)},h=function(n){document.body?k(document.body):0e;e++){var f=c.concat(d[e].split(""));K[e]=f;for(var k=0;k>2;n=(n&
3)<<4|t>>4;t=(t&15)<<2|h>>6;h&=63;f||(h=64,e||(t=64));c.push(b[k],b[n],b[t]||"",b[h]||"")}return c.join("")};try{return JSON.stringify(this.a&&this.a,S)}finally{Uint8Array.prototype.toJSON=a}}:function(){return JSON.stringify(this.a&&this.a,S)};var S=function(a,b){return"number"!==typeof b||!isNaN(b)&&Infinity!==b&&-Infinity!==b?b:String(b)};M.prototype.toString=function(){return this.a.toString()};var T=function(a){O(this,a)};u(T,M);var U=function(a){O(this,a)};u(U,M);var ja=function(a,b){this.c=new B(a);var c=R(b,T,5);c=new y(w,Q(c,4)||"");this.b=new ea(a,c,Q(b,4));this.a=b},ka=function(a,b,c,d){b=new T(b?JSON.parse(b):null);b=new y(w,Q(b,4)||"");C(a.c,b,3,!1,c,function(){ia(function(){F(a.b);d(!1)},function(){d(!0)},Q(a.a,2),Q(a.a,3),Q(a.a,1))})};var la=function(a,b){V(a,"internal_api_load_with_sb",function(c,d,e){ka(b,c,d,e)});V(a,"internal_api_sb",function(){F(b.b)})},V=function(a,b,c){a=l.btoa(a+b);v(a,c)},W=function(a,b,c){for(var d=[],e=2;ec?0:c}else c=-1;0!=c&&(W(a.b,"internal_api_sb"),Z(a,Q(a.a,6)))},function(c){Z(a,c?Q(a.a,4):Q(a.a,5))})},Z=function(a,b){a.c||(a.c=!0,a=new l.XMLHttpRequest,a.open("GET",b,!0),a.send())};(function(a,b){l[a]=function(c){for(var d=[],e=0;e2){dom.hide();}}$("#showallcomment").show();$("#showlesscomment").hide();};',
],
"src":[
{"src":"//count.wenxuecity.com/service/count/script/do.php?type=news&id=191689&n=0&out=jsval"},
{"src": "/news/js/view.js"},
{"src":"/members/js/md5.js"}
]
}
}