看见 github 上微软又出了一个黑科技,CodePush.
看介绍好象是可以不用向应用商店提交版本,直接推送代码。
这是不是和许多 iOS 手机游戏一样,登录的时候下载更新包一样?
这样做的原理是啥
1
hyq 2016-01-12 10:39:03 +08:00
用脚本写逻辑,发布后从网上下脚本。一般是用 lua 脚本
|
2
hyq 2016-01-12 10:41:21 +08:00
这个是 javascript 做的 natvie 应用吧?
|
3
congeec 2016-01-12 10:53:29 +08:00 via iPad
苹果的政策允许么?貌似是盲区
|
4
zhe13 OP @congeec 以前实习的时候,前辈写 iOS 就是用 Ludei 打包的,他就写了一个类似于端游每次登录的时候检查一下是否有更新包,有就下载。好像之前很火的刀塔传奇就是这么做的?国内和日本的好多 iOS 游戏都是这么做的,毕竟苹果商店每次提交版本都要提交全部代码,我觉得这样也很好=-=。能跟我讲讲整个软件包重新下载和下载补丁的优劣吗?@hyq
|
5
zhe13 OP @hyq 那我能不能这样理解,一个应用只包括底层逻辑和基础资源以及一个类似于“编译器”一样的处理器。高级逻辑就是脚本,然后每次打开程序都会由这个处理器接受推送,看看是否要下载新的脚本更改高级逻辑?
|
6
pheyer 2016-01-12 12:15:05 +08:00
这个是配合 ReactNative 使用的吧
|
7
GeekTest 2016-01-12 12:20:47 +08:00 via Android
不就是 12306 用的那套么
|
8
bullettrain1433 2016-01-12 12:36:27 +08:00
居然是微软家搞得
|
9
easing 2016-01-12 13:18:08 +08:00
我们的浏览器不就是代码热推送嘛, js 成吨成吨的下。概念就是这么个概念,无非就是换一个平台再来一次。
|
10
yujie 2016-01-12 13:20:30 +08:00
现在脚本更新还是没啥问题,苹果在这块其实也是睁一只眼闭一只眼的,牵扯到很多利益问题,你要是重新传个包上去又得重新审核,不能及时解决问题,程序开发到一定程度,脚本的逻辑也是很多的,其中只有小改动的话做增量更新就好了,所有脚本全部打包上传没必要,这个微软出的不太清楚,我们之前做游戏就是用 Lua 脚本热更的,脚本语言是在运行时才进行编译链接的,所以就有了更新的可能性,做好版本号,发现有新的了,就下载下来,重新加载就好了~这期间程序是可以不用重启的
|
11
a591826944 2016-01-12 13:24:48 +08:00
ReactNative +1
|
12
hqdmy 2016-01-12 13:30:50 +08:00
hotpatch 啊
|
13
hqdmy 2016-01-12 13:33:41 +08:00
ios wax
android Xposed |
14
agassi_yzh 2016-01-12 14:22:17 +08:00
JSPatch 也能干
|
15
plantain 2016-01-12 14:27:59 +08:00
代码是 typescript 写的,所以实际运行的应该是编译后的 javascript 。现在只支持 Cordova 和 React Native
|
16
aaaron7 2016-01-12 14:36:22 +08:00
live long and prosper.....
最后一条 instruction 太有情怀了…… |
17
leonlu 2016-01-12 15:10:34 +08:00
code push 用到的代码是 javascript 。苹果原来在开发者协议里指定只能在 web view 中执行远端代码。但是后来他们修改了协议,添加了一个 JavaScriptCore 。也就是说在苹果这儿,这么干是被认可的。
|
18
hyq 2016-01-12 15:18:21 +08:00
|
22
hyq 2016-01-12 17:12:14 +08:00
@zhe13 可以在热更新的时候提交审核,技术上一点问题都没有。整包小的时候看不到差别,如果是游戏,一个整包几百兆,热更新的优势还是很明显的
|
24
jayzjj000 2016-01-12 19:52:13 +08:00
这个应该都不算是黑科技了把,只是好好利用起来的公司好像不是特别多
单单 iOS 平台上,开源的 Wax+Lua , JSPatch+JS ,都是很好地方案,加上 iOS7 苹果推出了 JavascriptCore ,连平台都认可了还有啥不能干的 |
26
jayzjj000 2016-01-13 16:31:36 +08:00
@zhe13 奇怪的用途就是线上改代码,你能想到改代码能产生的奇怪的功能他们都能搞
这几个框架里面 JSPatch 应该算是比较成熟了吧,中文文档也更全面,可以玩一玩 |
27
kevinzhwl 2016-01-13 20:34:43 +08:00 via Android
很有趣的东西啊
|
28
publicAdmin 2016-01-13 20:35:38 +08:00
JSPath 微信也在用.. 666666
|