Redian新闻
>
说说苹果禁止JSPatch等iOS APP热更新方案
avatar
说说苹果禁止JSPatch等iOS APP热更新方案# MobileDevelopment - 移动开发
p*e
1
我看了邮件原文,苹果这次的警告是针对使用了
dlopen(), dlsym(), respondsToSelector:, performSelector:,
method_exchangeImplementations() 等反射函数用于动态调用oc API
通过远程下载的脚本使用这些函数达成改变app行为才会被当做违规行为,
换句话说,就是
如果本地使用(非远程下载)这些函数是允许的,要不oc也没必要提供这些函数,但在
技术上我认为apple很难判别是本地使用,还是被远程更新的脚本调用;
脚本更新是允许的,即lua并不使用上述反射函数,而使用确定的导出函数也是允许的;
为什么呢?苹果给出的解释是担心中间人攻击,就是说,如果使用jspatch可以做到被
中间人利用调用任意系统API,而造成风险,而这些滥用很可能不是app开发者本身的意
图;而一般游戏使用的lua更新方案是在确定的导出API里使用lua作为开发脚本,本身
能够调用的功能是确定、有限的,而不是不确定、任意的系统API,我认为这样做苹果
是默认的;当然使用lua作为脚本,调用了上述oc反射方法的framework、sdk估计也会
被警告,所以结论是不要调用上述反射API。
以上纯属对邮件的单方面无责任解读。
相关阅读
logo
联系我们隐私协议©2024 redian.news
Redian新闻
Redian.news刊载任何文章,不代表同意其说法或描述,仅为提供更多信息,也不构成任何建议。文章信息的合法性及真实性由其作者负责,与Redian.news及其运营公司无关。欢迎投稿,如发现稿件侵权,或作者不愿在本网发表文章,请版权拥有者通知本网处理。