ITミュージアム

開発したアプリをiPhone実機で実行する手順(Flutter, M1-mac, Xcode)

2023/04/07 2023/04/11

開発した iPhoneアプリ を実際の iPhone で動かしたい時に実行する手順をまとめています。mac側の Xcode 上で実行させる方法です。ターミナルは使用していません。

mac と iPhone を接続して、自作アプリを実行してみましょう。

目次

  1. mac と iPhone をつなげる前に確認すべきこと
  2. iPhone 側の操作
  3. mac 側(Xcode)の操作
  4. 実行
  5. mac と iPhone 実機 のワイヤレス(WiFi)接続
  6. エラーが出る場合

1. mac と iPhone をつなげる前に確認すべきこと

・Bundle Identifiar(バンドルID)が一意になっているか

例:com.example.xxxxxxx

com.example : 自分が持っているドメイン
xxxxxxx : アプリ名

バンドルIDは、他のアプリのIDと、かぶってはいけません。もし他のアプリと同じバンドルIDだった場合、実機での実行はできません。
Flutterで新規プロジェクトを作成する時に、きちんと名前を入力できていれば、問題なくそれが入っているはずですが、念のため、もう一度確認しておきましょう。

方法1)Flutter(VSCode)で確認する

(プロジェクト) /ios/Runner.xcodeproj/project.pbxproj

このファイル内にある

PRODUCT_BUNDLE_IDENTIFIER

の値です。
debug, release, profile 部分に3箇所記述され、すべて同じIDが入っているはずです。

方法2)Xcodeで確認する

Runner – TARGETS – General – Bundle Identifier

もしくは

Runner – TARGETS – Signing&Capabilities – Bundle Identifier

bundle-id

ここに正しいバンドルIDが入力されているか確認しましょう。

・Team 設定してあるか

Teamに apple ID が設定してあるか確認しましょう。
このIDは、個人のIDかもしれませんし、開発専用のIDかもしれませんが、ご自身で設定しているIDが入っているか確認しておきましょう。

この設定が空欄の場合はアプリを実行できません。

team

(PR)

2. iPhone 側の操作

2-1. デベロッパーモードをオンにする

iOS16から「デベロッパモード」が導入されました。ここをオンにしましょう。

[設定]
[プライバシーとセキュリティ]
最下部
[デベロッパモード] -> オンにします

iPhone-dev-mode

2-2. つないだコンピュータを信頼しましょう

macとiPhoneを接続すると、iPhone 画面に下記ダイアログが表示されます。

「このコンピュータを信頼しますか?」

iPhone-trust

[信頼] をタップ

パスコード入力画面が出てくるので、入力しましょう。

<旧方法>

以下は、iOS15以前の場合です。一応残しておきます。

初めて繋いだ場合は
「信頼されていないデベロッパ」というダイアログがでるので

[設定]
[一般]
[プロファイルとデバイス管理]

下の方の [ Apple Development: …. ] で始まるエントリーを選択

「デベロッパ ” Apple Development: …. のAppはこのiPhoneで信頼されていません。実行するには開発元を信頼する必要があります。」

という部分の下の青い部分( “Apple Debelopment : …)をタップ

「” Apple Debelopment: … のAppをこのiPhoneで信頼」

[信頼] をタップ

3. mac 側(Xcode)の操作

3-1. アクセサリの接続を許可

macとiPhoneを接続すると、mac 画面に下記ダイアログが表示されます。
なお、このメッセージは OS13 のものです。以前のメッセージは下記<旧手順>にあるのでそちらをご覧ください。

「アクセサリの接続を許可しますか?」

mac-iPhone-permission

[許可] をクリック

3-2. ダウンロードしたアプリケーションの実行許可の確認

[システム設定]
[プライバシーとセキュリティ]
中央あたりに
[セキュリティ]
ダウンロードしたアプリケーションの実行許可
・App Store
・App Store と確認済みの開発元からのアプリケーションを許可 <- こちらを選択

mac-setting

<旧手順>

macとiPhoneをつなぐと「codesign がキーチェーンに含まれるキー ” AppleDevelopment : … ” へアクセスしようとしています。」と出るので
「パスワード」入力

[システム環境設定]
[セキュリティとプライバシー]
[一般]
下の ダウンロードしたアプリケーションの実行許可:
“iproxy”は開発元を確認できないため、使用がブロックされました。
[このまま許可] をクリック

(PR)

4. 実行

Xcode で、mac に接続した iPhone 機種を選択します。

select-iphone

Xcode で Run(実行)

run

終了するときは、[停止] アイコンをクリック

run-stop

4-1. debugモード、releaseモード、profileモード について

iOS14以降、debugモードの場合、mac と接続している場合のみVSCodeやXcodeから起動可能となりました。

iPhone 実機単体でアプリを動かしたい場合は、releaseモードかprofileモードを選択しましょう。選択方法は以下のとおりです。

Xcode
[Runner] をクリック

edit-scheme

[Edit Scheme…] をクリック

Debug or Release or Profile

Build Configuration をクリックすると [Debug] , [Release] , [Profile] いずれか選択できるので [Release] を選択しましょう。

Release or Profile モードで実行すると 1週間実機でアプリを動かすことができます。

ざっくりとした各モードの違い

Debug モード
Flutter「HotReload」が使えたり、BreakPointを設定してコードを途中で止めたり、エラーチェックできたりするモードです。

Release モード
アプリをリリースした状態で動かせるモードです。
なお、iOSのシミュレーターは、releaseモードでは動かせません。

Profile モード
デバッグモードとリリースモードの中間
iOSのシミュレーターでも使えるので、実機がない場合にiOSでのパフォーマンスを見たい場合は、このモードで動かしたりするようです。

基本的に、iPhone 実機で開発しているアプリを実行したいときは Release モードで行うとよいと思います。

5. mac と iPhone 実機 の ワイヤレス(WiFi)接続

ケーブルで繋いている状態で
[Xcodeメニュー]
[Window]
[Device and Simulators] -> ダイアログ表示

[Devices] タブ Connected に接続中の iPhone が選択されているのを確認し

右上の
[Connect via network] にチェック

これで同じWiFi内であれば、ケーブルでつながなくても 実行(Run)できます。

6. エラーがでる場合

XCodeで

warning build: /Users/xx/Library/Developer/Xcode/DerivedData/ModuleCache.noindex/99889xxxx/UIKit-23f9LDkxxxx.pcm: No such file or directory

というようなメッセージが出る場合は、キャッシュが残っていてエラーとなっている可能性があります。その場合は下記手順で Clean しましょう。

[Xcode メニュー]
[Product]
[Clean Build Folder]

xcode-product-clean

Clean Successed と表示されればOK

一応、Xcodeは再起動しましょう。

まとめ

iPhoneアプリ開発を行うと、それを iPhone で試してみたいと思いますよね。

初めて iPhone で自作アプリを動かせたら、ちょっと感動します。
私はなぜか毎回感動します。

ぜひチャレンジしてみてくださいね。

おすすめ記事

(PR)