线上包升级unity版本的问题
假如我有一个线上包,用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 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(17)
不要再使用MD5这种方式作为给AB文件做校验了。推荐使用CRC(BuildPipeline.GetCRCForAssetBundle)
赞~
你确认是渲染闪退吗?不是逻辑上的?IOS 闪退日志看看。
一般来说,AssetBundle在打包时只要保留Typetree信息(默认关闭DisableWirteTypetree),那么高版本Unity出的包理论上是可以向下兼容的。但是,这个并不能保证实际情况下100%没有问题。
内网刚刚尝试复现了,好激动,等解决了问题我贴出来
1、不要使用文件的MD5码做校验,决定是不是下载。
2、使用一个版本列表,记录每个文件的打包的版本号,根据版本号来决定是不是要走更新。
3、版本更新的问题,使用SVN的记录修改,来打增量更新。这个与Unity的版本号变化 没有关系。
所以,就算Unity版本变了,打出来的AB变化了,但只要是版本没有变化 ,都可以认为是不需要更新的
如果之前已经上线的,就已经是针对MD5做校验更新的话,就没法了
我补充了一下,再帮我看看吧
渲染这块不是很专业,没研究这么深入,所以不太能解答题主的问题。
但是看题主对于描述得这么详细,比一些只贴半个崩溃栈的题主强多了,所以忍不住来捧个人场……
首先最可疑的是外网出现这么多而内网无法复现,这个最奇怪。要解决bug肯定是先能复现才好办,否则都很难验证是否修复了……所以这里个人感觉可以切入的一个点是内网和外网的区别。
另外,可以尝试通过bugly或者自己连接外网来玩寻找crash的共通点,比如在bugly上通过进入这个boss副本就把怀疑的玩家信息、职业、甚至放的技能都记录下来,crash的时候把这些信息也收集上传上来,查看是否有共通性。
难重现的bug的确很磨人,有时候要搞1个周,有时候要搞2个周,但是总会慢慢抽丝剥茧地把它解决,给题主打打气~加油。
PS:不知道调用到AppleMetalGLRenderer是否和苹果不太想继续支持OpenGL相关。。。
不过只是扬言。。。谁知道呢。。。
我记得之前看过一篇别人做的HDR CommandBuffer 抗锯齿之间的兼容问题,部分机器上会存在兼容问题,但是这种兼容问题该跟内网外网环境无关啊
我先是怀疑是你在内网跟外网之间的逻辑差异,比如说自己的宏设置了,或者网络延时不同造成的逻辑顺序不同,测试环境不一致等差异引起的。
但是看后面补充的日志,里面有ComandBuffer的信息,不知道你是不是使用了ComandBuffer,是否开了HDR,如果是,我怀疑是抗锯齿,HDR,CommandBuffer之间有兼容问题。
只是个人猜测,既然可以重现了,答案应该很快就浮出水面了。给题主打气,加油!
两个问题:
1、没做好很基本的线上底包版本的前后兼容和划分。
2、没做好是否要重新打ab的校验。
解决方式:
方式1、对各自版本用各自的unity版本打各自的ab包,注意添加版本标识,下载各自的ab。
方式2、重打ab校验,打完之后检测还原不需要更新的ab。
同样遇到这个问题,目前好像没找到啥办法
这个我知道,我现在的情况实际上相当于小版本更新(2018.3.5-u003E2018.3.9这样的),2018.4和2018.3并没有功能上的区别,2018.4只是因为要开一个LTS版维护,所以把版本号升了1位。所以应该不需要考虑向下兼容的问题。
试试摄像机 replaceshader 为 unlit/xxx 系列. 如果不崩溃就是shader问题,一般说矩阵数组越界等等,涉及精度造成除0等等
确实用了commandbuffer,我把抗锯齿先关掉试试
用2018.3打Bundle,用2018.4打apk呢?
是和内网外网没关系,昨天已经在内网重现了,只是因为环境不如外网复杂,重现概率比较低。今天我把这三个都关掉,再打个包试试吧,很可能真是这问题