美文网首页
新版APP会显示旧版APP启动页图片分析

新版APP会显示旧版APP启动页图片分析

作者: ShineLing | 来源:发表于2017-09-25 17:35 被阅读31次

问题描述, APP旧版用户在更新到新版本后,APP显示旧版的启动页。

第一反应,肯定是缓存引起的。是的,是缓存的问题。用户卸载重新下载安装就好了。

但为什么会出现这样的缓存问题...?  下面分析我遇到的情况:

从头说起,我手里的 APP 1.0 版本是我之前的人写的, 并发布迭代过了许多个小版本,由于线上发生情况比较多。后来我入职公司,要求重新写一版新的 APP 2.0。全新的UI设计,全新的页面逻辑,和数据处理逻辑。于是完全摒弃1.0,开始了2.0。

。。。

终于,2.0 版本发布上线。👏👏/烟花, 聚餐...

。。。

用户反馈:启动页不对。各方面检查代码,没有问题。于是告诉用户是手机缓存的问题,卸载重新安装试一下。用户反馈,确实可以。

又有用户反馈这个情况。嗯 这是个问题了,得弄清楚是什么。

核查自己的代码,项目里面完全没有1.0版本的影子。只有一个地方是一样的,Bundle Indentifier。很显然,不是因为它。

一系列的百度、博客...... 咦~ LaunchScreen.storyboard 的启动图,会把图片缓存到手机里。

去看 1.0 的源码,看到了它的启动图是用的 LaunchScreen.storyboard(以前我也这么用,特别是UI只给的图有限的时候回)。

我这个 2.0 里面使用的启动图实现方式是 Assets.xcassets 里面的添加 launchImage(我的UI太好了,给我切了每个屏幕尺寸的启动图,么么哒)。

难道这是问题发生所在? 测试:

情况一:在手机上面运行 2.0 的代码,再运行 1.0 的代码后,启动图会显示 1.0 的。之后再运行 2.0 的代码,还是显示 1.0。

情况二:卸载后 先运行 1.0 的代码,再运行 2.0 的代码, 启动图显示的仍然是 1.0 的。

嗯 大概是因为这了。 接着,copy 2.0 项目代码,改成 LaunchScreen.storyboard 方式加载。重复上面测试步骤,结果显示正常。copy 1.0 代码,改成 launchImage 方式,结果显示正常。

追加测试,手机运行 1.0 代码,去App Store下载新版,结果1.0启动图。 修改 1.0 使用 launchImage,去App Store下载新版,OK,正常。

/----- ↓ -----/

可以得出结果了,同一项目的不同版本启动页设置方式,要么统一使用LaunchScreen.storyboard实现,要么使用 Assets.xcassets - launchImage实现。

版本间交叉使用的话,会容易出现问题。

/----- ↑ -----/

我遇到的这种情况,各位大猿 大狮正常情况是不会遇到的。一般项目都是统一规划,搭好架构,分工开发。像我这种,直接推翻前面APP版本的,几乎是没有的(独立开发,与前面那人习惯又不一样),之前又没有遇到过。现在我在这个位置,那这个锅得是我的。

是缓存,缓存的很让人措手不及, MARK一下。

顺便提一下,Xcode 9 拖文件进项目的方式,会导致文件读取不到。文件包括 图片,第三方的库等。需使用 右键 - Add file to "项目"的方式添加文件。

个人拙见,仅供参考。 欢迎各位大猿、大狮提供宝贵意见。

相关文章

网友评论

      本文标题:新版APP会显示旧版APP启动页图片分析

      本文链接:https://www.haomeiwen.com/subject/ewydextx.html