iOS 开发遇到的那些事2(持续更新中。。。)

2020-10-10  本文已影响0人  呵呵先森

好记性不如烂笔头 记一下吧

1.GKPhotoBrowser

一个仿QQ或者头条的图片查看器 效果不错
描述:ios14 无法显示图片,视图中显示frame 等正确 就是黑屏 不显示
解决:需要把SDWebImage 升级到至少5.8.3版本
吐糟下: 用习惯了Android的一劳永逸的向下兼容,一开始真没想到是这种问题,查渲染视图,检查布局,查了两小时,最后突然想到是不是sdk的版本问题才解决(老本行Android开发的 真的很难想到这种问题, 第一个版本ok,那就后面的版本都没问题。。。)
sp:这里还有个小问题,已经issue作者,目前还没回复,遇到的可以参考下,


image.png
记录时间:2020-10-7

2.SDCycleScrollView

描述:iOS14 UIPageControl 系统api变更导致看不到点
解决思路:https://github.com/gsdios/SDCycleScrollView/issues/632(目前测试ios14可以正常显示,但在issue中作者回复,建议使用自定义格式,防止ios15出幺蛾子,可以这很苹果。。。)
经过上次GKPhotoBrowser的幺蛾子 这次直接去看SDCycleScrollView的文档,果然。。。

记录时间:2020-10-10

3.JSPatch

ios比较的热更新方案,原理利用oc动态语言的特性,达到一些动态修复的功能
描述:用swift开发的项目,个人认为不是很适合用这种热更新的方式去实现,理由可以参参考下这边文章(https://www.jianshu.com/p/e2eb7b4861c5)

image.png
另外测试发现用dynamic修饰的方法,热更新也存在失败的情况,具体可以下载官方的demo测试下,目前测试官方文档如下:
官方demo中的ctrl代码.png demo.js.png 打印log.png 运行效果.png

可以看到viewDidLoad和numberOfRowsInSection方法已被js中的代码替换, 但是dynamic描述的testLog却无法执行, 检测了文档写法,官方的demo始终是调不起来,后面有时间再研究下,dynamic描述的方法能执行成功,会继续在这里更新。

记录时间:2020-10-7

4.https://itunes.apple.com/lookup?id=更新问题

刚开始接触iOS更新提示,很多博客提示这种写法https://itunes.apple.com/lookup?id= 通过请求获取appStore的最新的版本号version
描述:appStore中app版本由1.2升级到2.0,
  通过这个链接请求version获取的版本号很奇怪(post请求,没有缓存), 两部测试机 一个ios14, 一个ios13 。在ios14上在app中请求的版本号会随机得到1.2或者2.0, 几个小时后趋于稳定2.0, 但是在ios13的app请求version大概率出现1.2, 两三天还是随机获取到1.2或者2.0,猜测可能是苹果数据库同步有问题,导致用这种方式请求的更新的app,部分手机不停的提示更新(sp:这种方式不能比较versionCode)。但是在两部手机的浏览器中单独请求始终是2.0, 可以,这很迷,这又很苹果。。。。
解决思路:修改为: https://itunes.apple.com/cn/lookup?id=
  查博客发现有人提供这种写法
  国内: https://itunes.apple.com/cn/lookup?id=
  国外: https://itunes.apple.com/lookup?id=

这张图片中==true为判断版本号是否一致.png
这张图片中==true为判断是否提示更新.png
storeVersion为链接请求到的版本号,appVersiobName为app的版本号,截图中可以明显看到 https://itunes.apple.com/lookup?id=链接随机性的获取到不同的version。
sp:https://itunes.apple.com/cn/lookup?id= 这种方式在19年使用中,偶然间请求获取到的version格式有问题, 导致更新提示也出现过问题,不太建议用这两种方式,线上出问题不可控,应该由自己的后端控制版本更新,虽然不是第一时间提示用户更新,但胜在稳定,可控,不会一一直提示用户更新或者随机性提示用户更新。
记录时间:2020-10-9
上一篇下一篇

猜你喜欢

热点阅读