Flutter Shorebird热更新初体验

930 阅读3分钟

官网

docs.shorebird.dev/

注意

  • 一定要科学上网
  • Terminal也要确处于科学上网环境

安装

curl --proto '=https' --tlsv1.2 https://raw.githubusercontent.com/shorebirdtech/install/main/install.sh -sSf | bash

Terminal执行安装命令,安装shorebird cli

WX20240616-144745@2x.png 安装完成后,执行shorebird doctor验证是否安装成功

登录

shorebird login

Terminal执行登录命令

WX20240616-144913@2x.png 登录我使用的是Google登录,在浏览器打开授权链接进行授权即可。

初始化

命令

shorebird init 

Terminal定位到工程的根目录,执行初始化命令

结果

WX20240616-145017@2x.png

WX20240616-160336@2x.png 执行成功后,

  • 工程根目录下会自动生成shorebird.yaml文件,里面保存了app_id信息,并且被pubspec.yaml引用
  • Android目录下的AndroidManifest.xml文件会自动添加INTERNET权限
  • Shorebird Console控制台自动创建一个应用,关联的就是你的本地工程

Android 端

发布版本

命令

shorebird release android

Terminal定位到工程的根目录,执行发布android版本命令

问题一

WX20240616-140511@2x.png 若遇到此问题,应该是网络情况问题,重试下就好了。

问题二

WX20240616-161236@2x.png 若遇到此问题,具体详情查看issue, 解决方案:

  • 执行md5 ~/.shorebird/bin/cache/artifacts/bundletool/bundletool.jar,验证md5结果是否等于d91230a986d4a990e7bb69351b9e9464
  • 若不是,去下载bundletool-all-1.15.6.jar文件
  • ~/.shorebird/bin/cache/artifacts/bundletool/目录,使用bundletool-all-1.15.6.jar替换bundletool.jar文件即可

结果

1718527445842.jpg WX20240616-175639@2x.png

  1. android打包成功后,显示当前app版本、平台类型、flutter版本信息
  2. 输入y继续下一步,将版本上传到Shorebird Console控制台
  3. 版本上传并发布成功后,显示版本信息,可以在Shorebird Console查看
  4. 使用 shorebird patch --platforms=android --release-version=1.0.0+1命令基于1.0.0+1打包补丁

修改代码

WX20240616-173057@2x.png WX20240716-003714@2x.png 这里简单修改下app的主题颜色和计数器的步长

发布补丁

命令

shorebird patch --platforms=android --release-version=1.0.0+1

Terminal定位到工程的根目录,执行发布android补丁命令

结果

WX20240616-170645@2x.png WX20240616-175751@2x.png

  1. android补丁生成成功后,显示当前app版本、平台cup架构信息
  2. 输入y继续下一步,将补丁上传至Shorebird Console控制台
  3. 补丁上传成功

iOS 端

发布版本

命令

shorebird release ios --export-method development

Terminal定位到工程的根目录,执行发布 ios 版本命令,这里构建的是针对注册了 Apple 开发者帐户的开发设备的测试包,构建之前,请在 xcode 中配置好证书。

结果

WX20240716-001335@2x.png WX20240716-001630@2x.png

  1. ios打包成功后,显示当前 app 版本、平台类型、flutter 版本信息
  2. 输入y继续下一步,将版本上传到Shorebird Console控制台
  3. 版本上传并发布成功后,显示版本信息,可以在Shorebird Console查看
  4. 使用shorebird patch --platforms=ios --release-version=1.0.0+2 --export-method development命令基于1.0.0+2打包补丁

修改代码

WX20240616-173057@2x.png WX20240716-003714@2x.png 这里简单修改下app的主题颜色和计数器的步长

发布补丁

命令

shorebird patch --platforms=ios --release-version=1.0.0+2 --export-method development

Terminal定位到工程的根目录,执行发布 ios 补丁命令

问题一

WX20240716-002643@2x.png 若遇到此问题,具体详情查看issue, 解决方案:

  • 下载aot-tools.dill文件
  • ~/.shorebird/bin/cache/artifacts/aot-tools/ef99b23fc158eca48dd9ecb76a819329985ad628/目录,使用刚下载的aot-tools.dill替换aot-tools.dill文件即可

结果

WX20240716-003402@2x.png WX20240716-003442@2x.png

  1. ios补丁生成成功后,显示当前 app 版本、平台 cup 架构信息
  2. 输入y继续下一步,将补丁上传至Shorebird Console控制台
  3. 补丁上传成功

成果

Screenshot_2024_0716_095125.gif

Screenshot_2024_0716_095755.gif

可以看到,app 第二次打开后主题颜色从紫色变成橙色、计数器的步长从 1 变成 2,热更新成功。