Open3

FlutterFlowで出力したソースをiOSシュミレーターで動かす

opqrshunopqrshun

まずFlutter SDKをセットアップ

以下を参考にセットアップ
https://docs.flutterflow.io/deploying-your-app/testing-your-app/testing-your-app#flutter-sdk-setup
https://docs.flutter.dev/get-started/install/macos/mobile-ios

Dartバージョン確認し、Dartバージョンが低い場合をflutter upgrade実行。
その際、以下のエラーが出る場合がある。
error: RPC failed; curl 92 HTTP/2 stream 5 was not closed cleanly: CANCEL (err 8)が出た場合、

HTTP/2の設定では失敗するようで、HTTP/1.1に変更しておく。
git config --global http.version HTTP/1.1

opqrshunopqrshun

iOSシュミレーターの準備をする。

以下を参考に進める。
https://docs.flutterflow.io/deploying-your-app/testing-your-app/testing-on-mobile-device#2.-running-app-on-device

いくつかエラーが出たので後述。

flutter pub get実行した際に発生するエラー

Flutterのプロジェクトディレクトリで、flutter pub get を実行すると以下のエラーが出た。
Because every version of flutter_test from sdk depends on collection 1.18.0 and xxxxxxx depends on collection 1.17.2, flutter_test from sdk is forbidden

flutter_testが、collection:1.18.0に依存しているようで、
そこで、flutter pub add collection:1.18.0を実行したら解消した。

さらに以下のエラーが出た。
Error (Xcode): ../../../.pub-cache/hosted/pub.dev/cached_network_image-3.2.1/lib/src/image_provider/cached_network_image_provider.dart:76:54: Error: Type 'DecoderCallback' not found. flutterflow

pubspec.yamlで、cached_network_imageのバージョンを3.3.0に設定しておく。

cached_network_imageのエラー参考
https://github.com/Baseflow/flutter_cached_network_image/issues/878

pod install実行した際のエラー

iOSフォルダーに移動し、pod installしたとき、以下エラーが出た。
Error installing BoringSSL-GRPC

以下でもインストールできない事例がある。
https://stackoverflow.com/questions/61603856/flutter-boringssl-grpc-unable-to-install

パッケージの容量が大きいみたいで、git config --global http.postBuffer 1000Mを実行。
しかし、BoringSSL-GRPC はインストールできたが、今度はError Installing gRPC-Core (1.49.1)と失敗。

最終的には、以下100000Mまで上げたら全てのパッケージのインストールに成功した。
git config --global http.postBuffer 100000M

アプリ実行

ようやくアプリを実行できるようになった。

open -a SimulatorでiOSシュミレーターを起動
flutter runで開発中のアプリをiOSシュミレーターで実行

opqrshunopqrshun

flutter runがものすごく時間かかる。
firestoreのパッケージのビルドに時間がかかるみたい。
https://github.com/invertase/firestore-ios-sdk-frameworks
以下のようにする。

target 'Runner' do
  pod 'GoogleUtilities'
  use_frameworks! :linkage => :static
  use_modular_headers!
# ここを追加
  pod 'FirebaseFirestore', :git => 'https://github.com/invertase/firestore-ios-sdk-frameworks.git', :tag => '10.22.0'

  flutter_install_all_ios_pods File.dirname(File.realpath(__FILE__))
end