iOS插件化开发远程更新动态库

发布于 2022-09-02 14:30:01 字数 230 浏览 25 评论 0

我现在有一个需求。公司要实现iOS插件话开发(非HTML5方式)。大概的思路是,上架一个主程序,今后添加功能模块的时候,工程师负责开发framework。每次主程序启动的时候,动态从服务器下载该framework。实现应用程序远程更新,而且可以不用商店再次审核。
但是目前遇到的问题是,据说这种远程下载动态库的方式,苹果是不允许的。
有没有哪位知道,苹果为什么不允许,是不允许远程加载,还是不允许使用动态库。大家有什么好的建议么。多谢

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(5

掀纱窥君容 2022-09-09 14:30:01

如果苹果允许你通过远程下载动态库来更新 App,那审核这个步骤就形同虚设了。

策马西风 2022-09-09 14:30:01

可以看看 JSPatch,一个开源库桥接 Objective-C 和 JavaScript,可以变相做到动态添加修改模块。

贩梦商人 2022-09-09 14:30:01

很抱歉,我只在本地测试过,我去查询了一下,SamirChen 说的是对的,生产环境应该是不行的。请大家参考他的回答。


确实是可以通过dlopen的方式打开沙盒里面的framework,而且这种方式不要求iOS8,是另外一种比较少见的hotfix方式。

有人实践过这种hotfix,启动时下载服务端的framework的zip包,然后解压、加载,可以成功,在苹果那也确实过得去,上海有家公司就是这么干hotfix的。

按照这种思想,确实是可以做到插件化开发的。因为相比起其他JSPatch、lua的wax这种的,都是写js、lua语言来调用OC接口,打打补丁还行,真要做功能开发会累死,而使用framework的方式具备了原生编写的优点,又有hotfix的功能,非常棒。

但是,为什么市面上很少见到这么干的呢。按道理说,苹果一般是禁止这种行为的,按照苹果的说法,如果被发现了,可能会下架(其实按照苹果的说法,lua那种也是不行的,但是从来没有听说过谁被下架了,js的方式是可以的。)。但是,你可以试试,说不定可以过去,比如,审核时不开这个功能,过审了之后再开。

我以前也想过这种方式,后来觉得风险太大,所以没这么干,毕竟是公司项目,万一下架了,我是要承担责任的。

现在苹果审核还是很快的,远程更新整个模块的话,必要性不是很大,打打补丁就够了。

如果你觉得这种插件化的开发比较好管理的话,我建议你可以使用私有pod仓库这种,把框架、基类打成单独的pod,其他人各自开发各自的模块的时候,打成各自的bundle和静态库。这样,他们的提交对你是没有影响的,你只要定时pod update一下就行。每个模块的增删也是非常方便的(如果你的app有那么大的话)。

昨迟人 2022-09-09 14:30:01

大佬这个问题解决了吗?我也遇到这样的问题,望赐教(#^.^#)

神回复 2022-09-09 14:30:01

楼主,我最近也在关注这个问题,请问你实现了这样的方式没,动态更新app?然而是怎么做到的

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文