动态更新

利用 Framework 进行动态更新

放肆的年华 提交于 2019-12-05 12:08:38
前言 目前 iOS 上的动态更新方案主要有以下 4 种: HTML 5 lua(wax)hotpatch react native framework 前面三种都是通过在应用内搭建一个运行环境来实现动态更新(HTML 5 是原生支持),在用户体验、与系统交互上有一定的限制,对开发者的要求也更高(至少得熟悉 lua 或者 js)。 使用 framework 的方式来更新可以不依赖第三方库,使用原生的 OC/Swift 来开发,体验更好,开发成本也更低。 由于 Apple 不希望开发者绕过 App Store 来更新 app,因此 只有对于不需要上架的应用,才能以 framework 的方式实现 app 的更新。 主要思路 将 app 中的某个模块(比如一个 tab)的内容独立成一个 framework 的形式动态加载,在 app 的 main bundle 中,当 app 启动时从服务器上下载新版本的 framework 并加载即可达到动态更新的目的。 实战 创建一个普通工程 DynamicUpdateDemo,其包含一个 framework 子工程 Module。也可以将 Module 创建为独立的工程,创建工程的过程不再赘述。 依赖 在主工程的 Build Phases > Target Dependencies 中添加 Module,并且添加一个 New Copy Files