概要
Flutter でアプリを開発していて iOS 実機で動かしてみたいことはあると思いますが、軽く調べたところそのままではエラーになってしまったり、ADP (Apple Developer Program) への加入が必要といった情報が出てきたりしました。
少し試行錯誤したところ ADP への登録をせずとも iOS 実機でアプリを実行することができたので、その手順を残しておきたいと思います。
環境情報
MacOS 15.2
Android Studio Ladybug | 2024.2.1 Patch 3
Xcode 16.2
flutter 3.27.1
iOS 18.1.1
※ 筆者は Android Studio で開発を行っています。
手順
Mac と iOS 端末をケーブルで接続します。
(一度接続すれば無線で接続できるようになります)
Flutter 側でデバイス認識がされている状態になれば OK です。
% flutter devices
(略)
hogehoge-iPhone (mobile)
そのまま実行するとエラーになります。
Failed to build iOS appCould not build the precompiled application for the device. Error (Xcode): No profiles for 'com.example.iosRunSample' were found: Xcode couldn't find any iOS App Development provisioning profiles matching 'com.example.iosRunSample'. Automatic signing is disabled and unable to generate a profile. To enable automatic signing, pass -allowProvisioningUpdates to xcodebuild. /Users/hogehoge/StudioProjects/ios_run_sample/ios/Runner.xcodeproj
そこで、Xcode で該当プロジェクト内の ios/Runner.xcworkspace
を開きます。
「Automatically manage signing」にチェックを入れ、「Team」に自身のアカウントを設定します。
もし Xcode に Apple ID を設定していない場合は、メニューの「Xcode」→「Settings」→「Accounts」から ID を紐づけておいてください。
また、参考書をもとに作っている場合などはアプリ名が共通になるので、ここで「Bundle Identifier」の重複によりエラーが表示される場合があります。
その際は、任意の値に変更しておいてください。
(少なくともテスト実行するだけであれば、一意になれば何でもOKです)
ちなみに私は下記の本で Flutter を学びました。Dart の言語仕様から丁寧に説明されていておすすめです。
その後、アプリの実行を試してみると iOS 端末で動くことが確認できるかと思います。
iOS 端末側でエラーになった場合は、設定アプリの「一般」→「VPNとデバイス管理」からデベロッパを信頼してください。
また、このままだとデバッグ実行中は動作しますが、一度接続を切ってから iOS 端末単体で実行するとアプリ起動時に落ちてしまうと思います。
(手元の端末では、透明な画面が一瞬表示されてすぐ落ちるという挙動でした)
単独で実行したい場合は、先ほどと同様に Xcode を開いて、上部にある Runner の「Edit Scheme…」をクリックします。
「Run」の「Info」にある「Build Configuration」を「Release」に変更します。
その後 Xcode 上から実行することによって、アプリが単独でも動くようになります。