Ios热更新预言报告

热更新简述

热更新是一种各大手游等众多App常用的更新方式。简单来说,就是在用户通过App Store下载App之后,打开App时遇到的即时更新。

2017年3月,苹果就曾警告部分开发者违反了《苹果开发者计划许可协议》的3.3.2章节以及《App Store审查指南》2.5.2章节的规定,要求开发者删除热更新相关代码,并重新提交一个新的App版本以供审核。

2017年6月,AppStore审核团队针对AppStore中“热更新”的App开发者发送邮件,要求移除所有相关的代码、框架或SDK,并重新提交审核,否则就会在AppStore中下架该软件。

Ios热更新实现的几种方式

一、JSPatch

热更新时,从服务器拉去js脚本。理论上可以修改和新建所有的模块,但是不建议这样做。

建议 用来做紧急的小需求和 修复严重的线上bug。

二、lua脚本

比如: wax。热更新时,从服务器拉去lua脚本。游戏开发经常用到。

三、Weex

跨平台,一套代码,iOS、Android都可以运行。用前端语法实现原生效果。比React Native更好用。

weex基于vue.js,ReactNative使用React。

ReactNative安装配置麻烦。 weex安装cli之后就可以使用。

react模板JSX有一定的学习成本,vue和常用的web开发类似,模板是普通的html,数据绑定用mustache风格,样式直接使用css。

淘宝干的漂亮,中国在编码的实力越来越牛叉了。威武!!!

四、React Native

不像Weex能一套代码多端运行,需要自己分别做修改。

React Native 可以动态添加业务模块,但无法做到修改原生OC代码。

JSPatch、lua 配合ReactNative可以让一个原生APP时刻处于可扩展可修改的状态。

五、Hybrid

像PhoneGap之类的框架, 基本概念和web差不多, 通过更新js/html来实现动态化,没有原生的效果流畅。

六、动态库

可以做demo用,真实使用的时候会被苹果禁止。

因为 打包发到AppStore的ipa安装包 里的每个动态库 都有唯一的编码,iOS系统会进行验证,所以动态通过网络获取新的动态库 也用不了。

七、rollout.io

Rollout紧急修复线上bug。后端有相关的管理页面。因为是国外的网站,然后呢,要FQ才能使用。

八、DynamicCocoa

滴滴iOS的一个框架,准备在2017年初开源,与JSPatch比更加智能化,用OC在XCode中写完代码,用工具可以自动生成可以更新的js文件。

苹果对于热更新的态度已经处理措施

2017年3月9日,部分iOS开发者收到了苹果的这封警告邮件:

·      苹果认为热更新技术容易被黑客利用,造成重大安全问题。在官方警告邮件中,也是在进行如此描述。

·

·

·

分析

1.目前JSPatch官网给出的结论是SDK1.7.2以上的版本可以审核通过,但是目前貌似没人使用,并且是付费使用

2.使用React Native,Weex,Hybrid热更新,项目没有使用次开源框架,方案不行

3. lua脚本 目前没有相对措施

4.使用动态库进行热更新,也是基于lua脚本的

5. rollout.io 需要翻墙,目前网上的资料显示无法绕过审核还是

6. DynamicCocoa 目前尚未开源

结论

目前可以使用JSPatch进行热更新,sdk1.7.2之前会存在审核不过的情况,大于这个版本的可以正常使用

ios 热更新可行性分析相关推荐

  1. iOS 热更新方案 - lance的专栏 - 博客频道 - CSDN.NET

    iOS 热更新方案 - lance的专栏 - 博客频道 - CSDN.NET Weex

  2. iOS热更新解读(三)—— JSPatch 之于 Swift

    继承自 NSObject 的 Swift 类 修改属性 新建 Swift 工程 SwiftJSPatch. AppDelegate.swift: // in AppDelegate.swift --- ...

  3. iOS热更新实现方式

    转发 链接:https://www.jianshu.com/p/00111d447e7e 苹果静止热更新,可惜我的是企业app,没有这些约束了,随便用.(当然有些热更新已经可以通过苹果审核了,比如JS ...

  4. 沉浸式iOS热更新方案

    沉浸式iOS热更新方案 iOS动态热更技术使得用户无需重新下载APP,就能修复线上BUG,提高用户体验,为APP快速迭代开发提供良好支持.此前业界的热更方案,多数是利用脚本语言修改Objective- ...

  5. Unity应用的iOS热更新

    Unity应用的iOS热更新 作者:丁治宇 Unity TechnologiesChina Agenda ? 什么是热更新 ? 为何要热更新 ? 如何在iOS 上对Unity 应用进行热更新 ? 支持 ...

  6. IOS热更新-JSPatch实现原理+Patch现场恢复

    关于HotfixPatch 在IOS开发领域,由于Apple严格的审核标准和低效率,IOS应用的发版速度极慢,稍微大型的app发版基本上都在一个月以上,所以代码热更新(HotfixPatch)对于IO ...

  7. iOS 热更新,实时代码更新,动态更新,动态库framework

    允许转载! demo 下载 只要审核通过后,无须再次审核,就可以动态更新,iOS有三种处理方案: 一.开源框架 reactive native,但是编程语言是js 二.lua 脚本 三.使用oc语言的 ...

  8. Ios热更新,实时代码更新,动态更新,动态库framework

    动态更新,iOS有三种处理方案 1,开源框架reactive native,但是编程语言是js iOS app可以在运行时从服务器拉去最新的js文件到本读,然后执行,因为js是一门动态的脚本语言 所以 ...

  9. iOS热更新方案(过AppStore审核)

    一.查阅了几种热更新的方案, JSPatch . Aspects . Stringer . TTPatch .Mango.OCRunner.下面用一个表格对这几种方案分别做个对比:        方案 ...

  10. iOS 热更新/热修复

    热更新/热修复(调研的可能不全) 热更新 1.* Flutter * 由于渲染的基础(gdi)是自己实现的,所以实现跨平台.性能优化.摆脱平台约束方面的裕度更大.从实际体验来看, Flutter 的性 ...

最新文章

  1. AGG第二十二课 conv_contour函数auto_detect_orientation的字体应用
  2. 小测试来检验一下你原型链理解的怎么样。
  3. MySQL 高级 while循环
  4. 使用Azure DevOps持续集成GitHub项目
  5. 将对象映射到多个XML模式–天气示例
  6. mysql normsinv_在MySQL中实现NORMSINV函数
  7. EmguCV学习遇到的问题记录
  8. Python 命令行之旅:使用 argparse 实现 git 命令
  9. div居中和table居中,jQuery获取下拉列表值
  10. Ubuntu搜狗输入法, 输入中文时只显示拼音,不显示中文选择框
  11. 《MATLAB智能算法超级学习手册》一一1.5 简单工程应用分析
  12. Unix风雨五十年:老兵远去,新秀崛起
  13. 毕业设计基本要求计算机,计算机学院关于本科毕业设计(论文)的基本要求.doc
  14. 常用的内部网关协议(IGP)
  15. 每一个人都应该学习电脑编程,因为它会教你如何思考
  16. 如何让品牌进入元宇宙
  17. 2018 ICPC 沈阳站
  18. 有一个班4个学生,5门课程①求第1门课程的平均分;②找出有两门以上课程不及格的学生,输出他们的学号和全部课程成绩及平均成绩;③找出平均成绩在90分以上或全部课程成绩在85分以上的学生分别编3个函数实
  19. 【GANs】Generative Adversarial Nets
  20. 李宏毅机器学习2021作业7-Bert (Question Answering)

热门文章

  1. 初中英语和计算机融合的教学案例,信息技术与初中英语教学整合的教学设计.doc...
  2. 铁木辛柯matlab,岩石断裂力学(李世愚2006)
  3. Oracle数据库以及客户端下载资源
  4. 【Android】ListView 控件的简单使用
  5. VS2012 产品密钥
  6. python万年历代码带解释_Python 万年历代码简单示例
  7. java怎么播放视频_如何播放视频文件 java
  8. wifi免密码登录认证流程
  9. dnf全部使用_dnf命令 (常用总结)
  10. Webpack5构建微前端和Web应用程序2022教程