Flutter – 热更新 Shorebird 1.0 正式版来了 🐦
内容提要
Shorebird 1.0发布,提升了iOS性能,但热更新功能存在问题。提供了一个脚本来切换源代码和二进制集成方法,并帮助使用Shorebird命令。文章提供了脚本使用说明。
延伸解读
iOS热更新性能提升,但稳定性问题需警惕
Shorebird 1.0正式版显著提升了iOS端热更新的性能,补丁后性能已达上线水平。然而,发布后部分页面出现灰屏问题,作者推测与tryCatch失效有关,后经官方确认。目前建议等待下个版本修复,暂勿急于在生产环境使用。
CLI指令变更:升级需调整脚本
Shorebird 1.0与0.22.1相比,指令有显著改动:ios-framework-alpha更名为ios-framework,弃用flutter versions use和release的--force标志。指定Flutter版本需在release命令中使用--flutter-version参数,混编项目需相应更新脚本。
手动定位Flutter源码目录的方法
由于flutter versions use被弃用,需手动查找Flutter源码目录。通过~/.shorebird/bin/internal/flutter.version获取当前最新支持的Flutter版本的hash码,进入对应目录后,利用git rev-parse命令获取指定版本(如3.19.3)的hash,从而定位到所需版本的Flutter源码。
混编项目脚本:简化集成与命令执行
作者提供了两个Python脚本:switch_flutter_integrate.py用于切换原生端集成Flutter的方式(源码或二进制),shorebird.py用于自动获取版本号并执行Shorebird命令。脚本支持指定Flutter版本和打3.19补丁,可结合Jenkins自动化打包流程。
Q&A
Shorebird 1.0的主要改进是什么?
Shorebird 1.0提升了iOS性能,支持热更新。
使用Shorebird进行iOS热更新需要哪些版本?
需要使用最新版Shorebird CLI (1.0.0)和Flutter (3.19.5)。
Shorebird 1.0发布后出现了什么问题?
发布后部分页面出现灰屏问题,怀疑是tryCatch失效导致。
Shorebird 1.0与0.22.1版本之间有什么指令改动?
ios-framework-alpha已更名为ios-framework,弃用flutter versions use指令。
如何手动查找Flutter源码目录的hash码?
需要手动查找Flutter源码目录,并检查~/.shorebird/bin/internal/flutter.version文件中的值。
Shorebird提供了什么脚本来帮助用户?
提供了Python脚本用于切换Flutter集成方法(源码或二进制)和执行Shorebird相关指令。