🤔

Flutterアプリを自機iPhoneへビルドする方法

2023/01/03に公開

前置き

Flutterのキャッチアップする際に自機iPhoneへのビルドをした際にflutter build iosで上手く動作しなかった為、試行錯誤した結果の方法になります。
結論としては、Xcodeを使用してビルドを行うことで自機iPhoneへのビルドを行いました。

以下を前提として記述を行います。

以下の内容は含んでおりませんのでご容赦ください。

動作環境

  • macOS Monterey 12.6 Intel

  • Flutter 3.3.10

  • Xcode 14.2(14C18)

大まかな手順

  1. iPhone側でデベロッパーモードをオンにする

  2. ビルド先のiPhoneをUSB接続

  3. Xcodeにてプロジェクトを開く

  4. Teamを自身のアカウントに設定

  5. ビルド先を接続デバイスに変更

  6. ビルド設定をReleaseに変更

  7. ビルド実行

  8. iPhoneにてアプリ信頼設定を行う

各手順詳細

以下、各手順について記載します。

1. iPhone側でデベロッパーモードをオンにする

iPhone設定より

  • プライバシーとセキュリティー
    • デベロッパモード

をオンにする。

https://press.monaca.io/takuya/12662

2. ビルド先のiPhoneをUSB接続

端末をMacおよびXcodeに認識させる為、Xcodeを開く前にiPhoneをUSB接続させておきます。

3. Xcodeにてプロジェクトを開く

プロジェクトを開く際の選択フォルダは、iosフォルダの一つ上の階層にて開く。

上記でエラーが出た際はiosフォルダをプロジェクトとして開く手順でお願い致します。

エラーが出る要因として、Runner.xcodeprojやRunner.xcworkspaceが読み込めていない可能性があります。

4. Teamを自身のアカウントに設定

TARGETS -> Runner -> Signing & Capabilities

Signing内項目「Team」を自身のAppleアカウントに設定。

5. ビルド先を接続デバイスに変更

Runnerのビルド先を先ほど接続したiPhoneに設定する。

選択項目に表示されない場合は、再度接続やFinderからも端末が接続されているかのご確認をお願いします。

6. ビルド設定をReleaseに変更

iOS14以降の実機でデバッグモードにてビルドしたFlutterアプリを一度閉じ、再度開こうとした際には開けないようになっている様です。

その為、Xcodeよりビルドするモードをデバッグからリリースへ変更します。

XcodeのRunnerを押下し、Edit Schema...を開きます。

Info内項目「Build Configuration」をReleaseへ変更し、CLoseします。

7. ビルド実行

ビルドまでの準備が出来ましたので、Run button(再生ボタン)を押下することで自機iPhoneへのビルドが実行されます。

8. iPhoneにてアプリ信頼設定を行う

iPhone側ではテストアプリの信頼設定を行う必要があります。

iPhone設定「一般」->「VPNとデバイス管理」->「デベロッパAPP」にて、ビルドしたAPPの信頼を行なってください。

https://zenn.dev/tatukane/articles/1985d23cfae8d8

https://zenn.dev/nasubibocchi/articles/e9d65e578844d0

手順は以上となります。

後書き

私のように自機のみで色々試したい方のお役に立てれば幸いと思います。

年末年始でFlutterをキャッチアップする中でビルド時に各種エラーを引いてあれこれやっている中で、「Xcodeからそのままいけるんじゃないか」でできた方法の為、人は選ぶかもしれませんがご容赦ください。

また、本記事ではDeveloper Programに参加しない方法にてビルドを行なっています。他の方の記事にて

Developer Program に参加していないと1週間でインストールしたアプリは使えなくなる。。
(中略)XcodeでFlutterプロジェクト配下のios > Runner.xcodeprojを開き、version や build をいじったら解決した。
https://qiita.com/smiler5617/items/f7e89a5ed0405226eaa6

という内容を見たため、併せて記載させていただきます。

では、良きFlutterライフを!

Discussion