Flutter – 热更新 Shorebird 1.0 正式版来了 🐦

💡 原文中文,约4100字,阅读约需10分钟。
📝

内容提要

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相关指令。

🏷️

标签

➡️

继续阅读