FlutterModuleでflutter verup時の組み込みアプリ側対応の検証

shinnaga
·

目的

Flutter moduleでのFlutterのバージョンアップを行った場合、組み込みアプリ側で作業依頼が必要かを検証

結果

作業依頼は不要(従来の更新作業で問題なし)

※ただし、podfile.lock等でflutterのバージョン固定していた場合、pod install時に古いflutterをインストールするかもなので、明示的に更新してもらう必要あり

前提

  • flutter 3.3.10flutter 3.10.6 で検証

  • [従来の更新作業]は下記の通り

    • Android

      • `flutter build aar`で生成されたbuildフォルダを入れ替え

    • iOS

      • `flutter build ios-framework` で生成されたbuildフォルダを入れ替え

検証手順

  1. flutter3.3.10でビルド

  2. 組み込みアプリにflutter3.3.10でビルドしたファイルを配置

  3. ドライバーアプリ上でflutter3.3.10が正常動作することを確認

  4. flutter3.10.6をビルド

  5. 組み込みアプリに[従来の更新作業]にてSDK更新

  6. 組み込みアプリ上でflutter3.10.6のSDKが正常動作することを確認

検証結果

  • android : [従来の更新作業]のみでflutter3.10.6のSDKが正常動作することを確認

  • iOS : [従来の更新作業]のみでflutter3.10.6のSDKが正常動作することを確認

    ただし、※podfile.lockにてflutterのバージョン固定している場合は3.10.6へ変更が必要

補足

  • Android

*通常のSDK バージョン更新手順*で入れ替えするモジュール内にて、SDKパッケージ内のpomファイルを確認したところ、下記記載

<dependencies>

<dependency>

<groupId>io.flutter</groupId>

<artifactId>flutter_embedding_release</artifactId>

<version>1.0.0-xxxxxxxxxxxxxxxxxxxxxxxxxxx</version>

<scope>compile</scope>

</dependency>

...

<dependencies>

恐らく、入れ替えるモジュール内にflutter engineも包括されている為、Flutter verup作業も不要となっている。

(ネイティブ知識が乏しいのでちょっと自信ないかも)

  • iOS

標準SDKでは、導入マニュアルにて各社アプリのpodfileへ下記設定を依頼

target 'プロジェクト名' do

pod 'Flutter', :podspec => './Flutter/Release/Flutter.podspec'

end

ここで指定している`./Flutter/Release/Flutter.podspec`は*通常のSDK バージョン更新手順*にて行っている各種フォルダを入れ替えの入れ替え対象ファイルであり、実際にFlutter.podspec内では下記の定義がある。

Pod::Spec.new do |s|

s.name = 'Flutter'

s.version = '3.10.600' # 3.10.6

s.summary = 'A UI toolkit for beautiful and fast apps.'

s.description = <<-DESC

これにより、*通常のSDK バージョン更新手順*のみでFlutter verup作業も不要となっている。