iOS 开发遇到的那些事2(持续更新中。。。)
好记性不如烂笔头 记一下吧
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)
另外测试发现用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
storeVersion为链接请求到的版本号,appVersiobName为app的版本号,截图中可以明显看到 https://itunes.apple.com/lookup?id=链接随机性的获取到不同的version。