上周,在快要稳定版本准备提交上线的前1天,突然发生了一件略"惊吓"的事情: 下午的时候,我们发现安卓线上版本分享到微博的功能居然一直失败,无关机型也无关网络,并且之前一直没出现过这种情况,但是同时,ios版本的对应功能是没有问题的。 当时真是整个人都不好了,因为大家找不到原因,不过好在最后,发现了问题所在: 当天上午,因为要给产品申请微博蓝V,而微博蓝V的申请条件之一是该申请的微博账号必须对应该微博开放平台账号。 而App之前因为公司原因,一直是挂在公司另一微博的账号下,因此,必须要申请应用转移。 结果,应用申请转移成功之后,微博分享的回调地址也就相应的变了,最后导致分享功能出现问题,而我一开始确实忘记了这一茬。 为什么一下子会想不到是因为微博回调地址没改呢?我想很大原因是当时iOS版本是没有任何问题的,同样的触发条件,却有非常不同的生效时间。 发生的时间比较惊险,一下子觉得这种坑真是坑人坑的不要不要的。 因此,打算回顾一下之前记得起来的类似"出乎意料的坑",和大家做个分享。当然,经验尚且不足,遇到的事情没有那么多,觉得值得写的坑也没那么多,同时,坑又是各种分布的,因此这篇文章属于内容不多又条理不足。 最希望的是抛砖引玉,大家能够用评论的方式把你遇到的防不胜防的坑和我做个分享,相互有个提醒不要掉入坑中呢。 推送--坑的不是一点点 我们产品的新版本的特色就是:顺应A股市场特色的"主题投资"+及时个性化的消息推送。因此,对于产品来说,消息的推送覆盖情况、到达情况以及准确情况是非常重要的。 而推送这里的坑真是大把大把的: ① Android没有官方的推送,都是一家家的第三方推送平台。 极光虽然是专业做推送的,但是因为安卓的很多家都是自定义的rom,会把推送"杀掉",导致可能出现安卓一次性推送历史多条消息的情况出现。 友盟虽然通过阿里系等大型App的唤起功能,尝试解决这个问题,但是还是存在数据丢失、消息排队时间略久的情况。 ② 就算用了第三方推送平台、没被rom杀掉,也可能在安装应用的时候,被各大手机厂商引导关闭推送,导致收不到推送。 ③ 产品肯定是用自动推送的啦,当初还在开发第一版本的时候,发现明明都OK的,代码也没有问题,但是一到正式环境就收不到推送。找了一天也没有找到原因, 最后发现,是需要在我们使用的第三方平台中设置所有用到的服务器的IP地址的。这意味着,以后新增加一个服务器,可能就要去添加一次,还千万不能忘,OMG… (其他的坑我就不说了,毕竟是在意料范围内的,同时对推送有研究的小伙伴请加我联系嘛,我们来聊聊!) 存储文件的刷新——一不注意就被坑 一般的产品,都会在落地页中让用户能够直接下载App,这个其实是把App先上传到云存储空间中,再根据文件的外链来实现的。 然而这个坑,踏过好几次了,简直羞耻… 第一次:没有经验的时候,上传了新版本的apk包后以为就完事了。直到第二天才发现,下载下来的包还是旧版本的包。当时也不知道是哪儿出现了问题,排除开发人员打错版本包、我上传错包的可能性后,发现是第三方云存储平台的缓存问题。最后,通过缓存刷新解决了这个问题。 第二次:经过第一次的坑爹后,每次都会注意这个问题,上传后会进行验收。然后又遇到了第一次同样的问题,但是怎么刷新缓存都不ok,最后发现可能是第三方云存储平台整体的问题,用的还是目前来说很大的平台了,无力cry。 产品变更--简直灾难现场 ①因为变更,到底是重新做一个App还是在原来基础上覆盖版本,这是个很值得权衡的问题:旧用户、公司层面、应用市场各方面因素需要考量; ②新的logo、slogan、产品文案、产品用图(水印啥的)、宣传图、的调整自不用说,调整的范围包括以下等: 产品的落地页和主页; 各大应用市场; 微博微信QQ的开放平台;(非常大的坑) 这个会影响从App内分享内容出去后,在这三个平台的logo显示。而最悲剧的是,因为微信、微博、QQ有缓存,除非用户卸载它们,才会显示新的logo,说的就是下图红框的地方… ③产品的新域名需要向搜索引擎提交url并且对接sitemap,不然会导致搜索不出结果;产品的旧域名如何处理,是自动跳转到新域名呢还是直接下线不要?会不会牵连到之前的合作或者搜索引擎的抓取? ④ 和合作方需要提前沟通,不然由于旧接口的数据停止更新了,导致合作平台的内容也不更新,这样就不太好,要在合理时间内进行重新对接; ⑤ 要重新加上数据收集分析平台的统计代码,保证有数据可依; ⑥ 旧产品的产品数据、用户数据的参考性程度; ———我是结束的分割线——– 哈哈,最后,吐槽一下,最近不是传说中app store审核加快了咩,但是我并木有感觉啊…我们的新版ios咋还不上架捏~