1. 聚能聊>
  2. 话题详情

关于苹果禁止采用JSPatch / wax/ rollout 热修复框架的app上架,你怎么看

timg_2_jpeg

最近一两周苹果加强了对app的审核,特别是警告去掉动态下发功能。那么苹果为什么会兴师动众,拒绝这种热修复框架呢?

其实不管是 JSPatch 还是wax和 rollout 等热修复框架,其原理都是通过 JS 脚本调用和替换任意 OC 方法,而js脚本转换oc的方法目前是比较低效的。其实从苹果的开发者条例中来看,苹果对热修复一直以来的态度都是不赞同也不拒绝,并且JSPatch 大多数都用于修复 bug(这也是为了快速修复bug,可能这动了苹果的奶酪),一直以来,苹果一直特别在意两方面:安全和体验。

体验

所谓体验,我们都知道,苹果一直以来都比较注重产品的品质和体验,特别是在乔布斯那个年代,苹果的每一个产品都可以说是划时代的产品,其体验一直受到广大用户的推崇,而采用JSPatch 等js注入的其运行效率往往达不到原生的效果,或者编译会加重手机的负担。

安全

在安全上,苹果一直以最安全的系统自居(闭源,大家懂得),但是前提是你必须遵循它的开发规范,但是采用JSPatch 等热修复框架之后,这种安全和可控正在被挑战。
举个例子,开发者接入的SDK里接入了JSPatch,SDK 作者对这些 APP 下发恶意脚本,这就造成了安全隐患。

原因

国外开发者比较少用热修复,是因为国外开发流程很好很规范,会做好充分的 codereview 和测试,上线后没什么 bug,不需要热修复。而国内版本迭代频繁,经常 出现因为某个小问题造成app奔溃,这就不得不提交新版本。特别是苹果在最近上线了灰度测试扫描代码,所以我相信苹果在以后肯定会加强对这方面的控制。

怎么办

热修复的需求很大,很希望苹果可以推出自己的方案,由系统做这个事是可以保证安全的,但从目前看起来可能性较低。
那么针对目前苹果对JSPatch的观点来看,我们只要不是滥用,应该是不受影响的,毕竟还是有例外的,诸如React Native/ 小程序这样用 JS 做功能的现在是不受影响的。那么针对目前已经使用了热修复方案的app,我们以后怎么做才能提高审核通过率呢?这里我提三个建议:

  1. 减少使用人数,降低影响面。
  2. 禁止 SDK 接入。
  3. 接入保证传输安全和只用于修复 bug。
    第一点,出自我出发,严格遵守苹果的开发协议和流程。第二点和第三点减少第三方平台的接入,特别是一些小平台的接入,并多采用官方方案来管控。对于上述三种建议,如果可能的话希望可以跟苹果审核团队协商解决。

那么对于JSPatch等热修复框架,你怎么看?

·如于苹果此举,你是顶?是踩?来说说你的观点和看法。

·谈谈你开发的APP有没有使用热修复?现状如何?

·苹果此举后,大家的对策是什么?或是预测一下此事儿发展状况将是怎样?

参与话题

奖品区域 活动规则 已 结束

  • 奖品一

    淘公仔 x 3

  • 奖品二

    定制笔记本 x 3

  • 奖品三

    技术书籍 x 2

63个回答

3

bearyes 已获得淘公仔 复制链接去分享

热更新被禁用后,对于国内游戏厂商而言,除了大包体游戏的更新可能会变得困难之外,也意味着行业内两大灰色行为——利用已通过苹果审核上架的产品的热更新,1)产品狸猫换太子;2)切换支付流程收款帐号,达到绕过苹果分成的目的。这两个行业内已经默认存在了至少一年多的行为,将被限制。

0

noblerr 已获得技术书籍 复制链接去分享

安全是做到了。但只是相对的。如果有重大bug。那只有等审核才能发布,程序员连死的心都有了。

壹体微创 回复

那就做好自己的技术。

科瑞力诚 回复

重大bug都能上线那就等死吧……

评论
1

mcjeans 已获得定制笔记本 复制链接去分享

热更新禁止有利有弊 对于苹果来说是好事 但对于APP商来说是一种限制 对于用户体验也是一种局限 有可能会影响到市场的销售

mcjeans 回复

但对于安全来说 安全指数是不错的

王源捃 回复

苹果手机有“后门”,请问,这也叫“安全”?

评论
0

kelvins943 已获得淘公仔 复制链接去分享

据说国外开发都不理解国内为什么要用热修复,国外开发流程很好很规范,会做好充分的 codereview 和测试,上线后没什么 bug,不需要热修复,也不会有产品经理乱提需求,迭代没像国内这么快,使用热修复是本末倒置,不去考虑提高 APP 质量,国内开发方式太 low,国外的才是正道。
这里有个问题,就是什么是好的开发方式?以什么标准界定?上面的说法可以看出他们是把工程的严谨性,流程的规范性作为好坏的依据。虽然我是个程序员,觉得工程严谨和流程规范确实是好东西,但我比较实用主义,更倾向于以结果作为标准,也就是能不能更低成本更高效地开发出质量更好的产品作为标准。
如果我使用热修复能以更低的人力成本(工程师能力和薪水不如国外,人数少),更高效(测试时间缩短,不需要覆盖到0.01%几率出现的 bug / crash ),做出质量更高的产品( bug / 特殊情况和需求反应速度快),为什么不是一个更好的开发方式呢?
另外客户端的开发方式本身就是落后的,不利于快速迭代,无法对线上产品有控制权,参考另一篇文章。这也就是为什么 Facebook 一开始要用 web hybird 的方式开发,现在又要做 React Native。热修复是这种落后开发方式的弥补。另外我没在国外公司工作过,但感觉他们对bug的容忍程度还是比国内高的,对比一下 IAP 和微信支付的失败率,做过的人都知道。
还有一个声音说国内的人喜欢违反规则,钻空子太不老实。首先前面也说了热修复的方式并没有违反规则,完全符合开发者条例,其次国外也有热修复 rollout,最后如果从开发者条例来说,React Native 反而是违反规则的,因为主要用途动态添加和修改 APP 的功能

grefr 回复

跨平台才是真正的进步,一直以来认为ios和android开发会被跨平台的混合式开发模式替代。跨平台才是真正的进步

评论
1

始甄不渝 已获得淘公仔 复制链接去分享

我觉得这样很好,这个世界渐渐步入数字化时代,不管是工作,交际,资产,都变成了一串串的字符和数字,如果这些被恶意篡改,清除,会造成很多麻烦,相比之下我们消费者更希望得到更好的保障,也同样制约了一些垃圾开发商

1

浮生递归 已获得定制笔记本 复制链接去分享

·如于苹果此举,你是顶?是踩?来说说你的观点和看法。
安全角度看,顶。效率角度看,踩。鱼和熊掌不可兼得。

·谈谈你开发的APP有没有使用热修复?现状如何?
使用热修复很正常,可能国外的APP没怎么用热修复,但是客户端软件,比如像魔兽如此大的游戏,最终还是采用了热修复的方式。这样不用老是关服务器,让几百万玩家下线等上几小时

·苹果此举后,大家的对策是什么?或是预测一下此事儿发展状况将是怎样?
既然苹果一直是闭源的,什么都是他说了算,以后肯定也只能按他的意思办咯

0

keller.zhou 已获得定制笔记本 复制链接去分享

在国内,热修复的需求很大,很希望苹果可以推出自己的方案,由系统做这个事是可以保证安全的,但现在看起来可能性较低,国外需求量不大,苹果也就不会重视这个需求,何况目前在大力推 Swift。

对于 JSPatch,苹果应该是扫描可执行文件里的关键字,从技术上说是很难禁掉的,可以做各种混淆去绕过检查,但若下发时被查到,会有政策风险,政策有待观察。

实际上动态化还是处于灰色地带,严格来说 RN 是不符合规则的,但还是被允许,只要不给苹果添麻烦,苹果就不会管,JSPatch 因为上面提到的两点风险被管了,怎样做到使用并不给苹果添麻烦呢?

减少使用人数,降低影响面。禁止 SDK 接入。接入保证传输安全和只用于修复 bug。

第一点警告邮件和代码检查使得使用门槛变高了,显然会减少使用人数。第二点第三点只要有一个平台来管控,是可以做到的,可能的话希望能跟苹果审核团队协商。

0

chenley 已获得技术书籍 复制链接去分享

厨师说:你们谁敢动我的奶酪,我就动谁的午餐!!!
感觉国外的一些东西(如框架/协议等...),一旦进入中国,总会被“聪明的”中国人找到各种突破口,然后玩坏...国外的多数App,大都经过了相对严格的测试流程,对线上Bug的控制要比国内很多的App强很多。特别是国内流行敏捷开发,必然在获得快速开发上线的过程中导致App的质量有所下降,也使得热修复功能被国内开发者滥用的情形。
苹果禁止了动态修复功能,在没有寻找到更新更好的替代方法时,我们只能通过在App开发和测试流程中加强App本身质量,才能在苹果允许的框架内获得更好的利益;
最后希望谷歌不要跟风苹果... ....揖!

3

似水的流年 复制链接去分享

游戏更新是不是会有影响,更新都要审核才能发布,这样的话如果有bug将会产生重大影响,对于开发者来说压力更大了

1

灰狼0813 复制链接去分享

其实苹果这样做很不理智。

1

灰狼0813 复制链接去分享

如果是这样做的话,那我们这些小程序的一个开发员基本上没什么活路了。苹果这样的一个措施,还让不让人活啊!对于国内的一些游戏,开发商肯定有很大的影响。

1

梅知识 复制链接去分享

对wex5之类的开发框架呢?

0

1745092970122853 复制链接去分享

好的应该坚持,不健全的就应该改进

0

1117892420699796 复制链接去分享

作吧

0

lolfc 复制链接去分享

还是安卓比较操作简单些

0

阿祖000 复制链接去分享

关于苹果禁止采用JSPatch / wax/ rollout 热修复框架的app上架,我觉得无论从体验,安全,苹果自身的利益,苹果都会禁止采用JSPatch / wax/ rollout 热修复框架的app上架。我想苹果会自己搞一套类似的热修复框架了。

0

1754773641300222 复制链接去分享

热更新禁止有利有弊 对于苹果来说是好事 但对于APP商来说是一种限制 对于用户体验也是一种局限 有可能会影响到市场的销售。

0

wuyouseo 复制链接去分享

大家喜欢苹果,不就是喜欢它的应用吗?个人觉得越严格越好,更好的维持资源圈的正常运转。

0

1222590056384343 复制链接去分享

怎么样玩的

0

刘勇虎 复制链接去分享

禁止热修复目前看来主要还是对应用的限制比较多,对游戏基本没什么影响,对应用来说感觉没什么不好,

4