线上包升级unity版本的问题

发布于 2017-02-09 10:23:11 字数 355 浏览 848 评论 17

假如我有一个线上包,用2018.3.5打包的客户端和ab包

然后现在出了2018.4.0,我发现2018.4里修了一些崩溃的BUG,希望升级到2018.4,但是线上包并不进行强更(因为会流失),而是之后的玩家下载到的是新包。

现在的问题是: 1、客户端本身用这个操作没有什么问题,我试了下2018.3.5一样能打开2018.4的ab包,运行起来也没什么问题。 2、但是2018.4打出来的所有ab包都变了,主要就是文件头那里有个unity版本号的地方变成了2018.4,内容实际上没什么变化。这就导致以前下载了2018.3.5的客户端的玩家需要重新下所有ab包。

我想问问有没有人做过线上包升级unity版本但是不强更的类似处理?这时候ab包怎么处理的。

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

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

发布评论

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

评论(17

归属感 2020-10-22 05:33:04

不要再使用MD5这种方式作为给AB文件做校验了。推荐使用CRC(BuildPipeline.GetCRCForAssetBundle)

偏爱自由 2020-10-15 21:51:38

赞~

清晨说ぺ晚安 2020-08-06 19:15:22

你确认是渲染闪退吗?不是逻辑上的?IOS 闪退日志看看。

甜柠檬 2020-08-04 08:26:43

一般来说,AssetBundle在打包时只要保留Typetree信息(默认关闭DisableWirteTypetree),那么高版本Unity出的包理论上是可以向下兼容的。但是,这个并不能保证实际情况下100%没有问题。

泛泛之交 2020-06-10 06:14:54

内网刚刚尝试复现了,好激动,等解决了问题我贴出来

泛泛之交 2020-04-23 22:56:22

1、不要使用文件的MD5码做校验,决定是不是下载。
2、使用一个版本列表,记录每个文件的打包的版本号,根据版本号来决定是不是要走更新。
3、版本更新的问题,使用SVN的记录修改,来打增量更新。这个与Unity的版本号变化 没有关系。
所以,就算Unity版本变了,打出来的AB变化了,但只要是版本没有变化 ,都可以认为是不需要更新的
如果之前已经上线的,就已经是针对MD5做校验更新的话,就没法了

晚风撩人 2020-01-09 22:39:44

我补充了一下,再帮我看看吧

虐人心 2019-09-20 14:08:30

渲染这块不是很专业,没研究这么深入,所以不太能解答题主的问题。
但是看题主对于描述得这么详细,比一些只贴半个崩溃栈的题主强多了,所以忍不住来捧个人场……

首先最可疑的是外网出现这么多而内网无法复现,这个最奇怪。要解决bug肯定是先能复现才好办,否则都很难验证是否修复了……所以这里个人感觉可以切入的一个点是内网和外网的区别。

  1. 两边包体是否一致,是否有比如一些宏或者代码上的区分导致了逻辑不一致;
  2. 排除下服务器的问题,比如使用内网包链接外网服务器是否能够出现问题?
  3. 打世界boss的测试环境要尽量一致,比如玩家人数、使用的英雄等。
  4. crash的栈一致的情况下,看下内外网使用的设备是否有区别,比如截图中操作系统都是ios 12.x?

另外,可以尝试通过bugly或者自己连接外网来玩寻找crash的共通点,比如在bugly上通过进入这个boss副本就把怀疑的玩家信息、职业、甚至放的技能都记录下来,crash的时候把这些信息也收集上传上来,查看是否有共通性。

难重现的bug的确很磨人,有时候要搞1个周,有时候要搞2个周,但是总会慢慢抽丝剥茧地把它解决,给题主打打气~加油。

PS:不知道调用到AppleMetalGLRenderer是否和苹果不太想继续支持OpenGL相关。。。
image.png
不过只是扬言。。。谁知道呢。。。

夜无邪 2019-06-26 22:01:17

我记得之前看过一篇别人做的HDR CommandBuffer 抗锯齿之间的兼容问题,部分机器上会存在兼容问题,但是这种兼容问题该跟内网外网环境无关啊

清晨说ぺ晚安 2019-02-14 21:21:05

我先是怀疑是你在内网跟外网之间的逻辑差异,比如说自己的宏设置了,或者网络延时不同造成的逻辑顺序不同,测试环境不一致等差异引起的。
但是看后面补充的日志,里面有ComandBuffer的信息,不知道你是不是使用了ComandBuffer,是否开了HDR,如果是,我怀疑是抗锯齿,HDR,CommandBuffer之间有兼容问题。
只是个人猜测,既然可以重现了,答案应该很快就浮出水面了。给题主打气,加油!

清晨说ぺ晚安 2019-01-07 13:47:34

两个问题:
1、没做好很基本的线上底包版本的前后兼容和划分。
2、没做好是否要重新打ab的校验。
解决方式:
方式1、对各自版本用各自的unity版本打各自的ab包,注意添加版本标识,下载各自的ab。
方式2、重打ab校验,打完之后检测还原不需要更新的ab。

想挽留 2018-08-28 03:42:31

同样遇到这个问题,目前好像没找到啥办法

虐人心 2018-07-08 01:42:46

这个我知道,我现在的情况实际上相当于小版本更新(2018.3.5-u003E2018.3.9这样的),2018.4和2018.3并没有功能上的区别,2018.4只是因为要开一个LTS版维护,所以把版本号升了1位。所以应该不需要考虑向下兼容的问题。

浮生未歇 2018-05-29 00:04:48

试试摄像机 replaceshader 为 unlit/xxx 系列. 如果不崩溃就是shader问题,一般说矩阵数组越界等等,涉及精度造成除0等等

清晨说ぺ晚安 2018-02-10 07:20:25

确实用了commandbuffer,我把抗锯齿先关掉试试

甜柠檬 2017-11-21 16:43:39

用2018.3打Bundle,用2018.4打apk呢?

浮生未歇 2017-07-03 20:05:40

是和内网外网没关系,昨天已经在内网重现了,只是因为环境不如外网复杂,重现概率比较低。今天我把这三个都关掉,再打个包试试吧,很可能真是这问题

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