0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

【Flutter】PatrolのiOSの設定不備の解消

0
Posted at

はじめに

Patrolをプロジェクトに導入し、iOSのセットアップをしていたのですが、はまった箇所が二つあったので記事にします。

前提

  • 2026/05/25時点の記事で、使用してるpatrolのバージョンは4.3.1です
  • Flavorを使用しています
    その影響か、若干、公式ドキュメントと設定を変えないとダメな箇所がありました。

xcode_backend buildxcode_backend embed_and_thinは不要だった

Patrolの公式ドキュメントだと、
RunnerUITestsBuild Phasesに、xcode_backend buildxcode_backend embed_and_thinを追加すると書いてありますが、追加するとビルドエラーが発生しました。
AIに聞くと下記のように書いてました。

Flutter 3.24〜3.38前後のバージョンにおいて、RunnerUITests(Patrolが使用するテストターゲット)に Flutterの embed_and_thin(フレームワークの埋め込みスクリプト)が走る設定になっていると、スクリプトが参照する環境変数がテストターゲット側に存在しないために内部でヌルポ(Nullクラッシュ)を起こすという、Flutterツール側のバグまたは競合が原因です。
本来、Patrolなどの統合テストでは Runner(アプリ本体)のみが Flutter フレームワークを埋め込めばよく、RunnerUITests 側にこのビルドフェーズ(Build Phases)は不要です。

ただ、公式に追加すると書いてあるのでAIが間違っているのだろうと、ドキュメントを最後まで疑わなかったのですが、試しに、xcode_backend buildxcode_backend embed_and_thinを削除すると動きました。

Flavorを使用しているときにSimulatorのCloneをオフにする方法

テストの並列実行がONになっていると、テストに使用するSimulatorをCloneして、CloneしたSimulatorでテストを行います。
この設定で動かすと、テストに使用するオリジナルのSimulatorが閉じてしまうので、不便を感じました。
公式のドキュメントにはCloneしないように設定する方法も書いてあり、同じように設定したのですが、Cloneがオフにならないという問題がありました。

結論として、Flavorを使っているときはテストで使用するSchemaの設定を変更する必要がありました。

  • Product > Schema > テストに使用するSchemaを選択し、Edit Schemaを押下
  • Test Plansから対象のTest Planをダブルクリック(ファイルの作成がされるのでSaveを押します)
    スクリーンショット 2026-05-25 17.09.05.png
  • Optionsを押下
    スクリーンショット 2026-05-25 17.09.25.png
  • ParallelizationをDisabledに変更
    スクリーンショット 2026-05-25 17.09.39.png
0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?