開発したアプリをiPhone実機で実行する手順(Flutter, M1-mac, Xcode)
2023/04/07 2023/04/11
開発した iPhoneアプリ を実際の iPhone で動かしたい時に実行する手順をまとめています。mac側の Xcode 上で実行させる方法です。ターミナルは使用していません。
mac と iPhone を接続して、自作アプリを実行してみましょう。
目次
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
ここに正しいバンドルIDが入力されているか確認しましょう。
・Team 設定してあるか
Teamに apple ID が設定してあるか確認しましょう。
このIDは、個人のIDかもしれませんし、開発専用のIDかもしれませんが、ご自身で設定しているIDが入っているか確認しておきましょう。
この設定が空欄の場合はアプリを実行できません。
(PR)
2. iPhone 側の操作
2-1. デベロッパーモードをオンにする
iOS16から「デベロッパモード」が導入されました。ここをオンにしましょう。
[設定]
– [プライバシーとセキュリティ]
最下部
– [デベロッパモード] -> オンにします
2-2. つないだコンピュータを信頼しましょう
macとiPhoneを接続すると、iPhone 画面に下記ダイアログが表示されます。
「このコンピュータを信頼しますか?」
[信頼] をタップ
パスコード入力画面が出てくるので、入力しましょう。
<旧方法>
以下は、iOS15以前の場合です。一応残しておきます。
初めて繋いだ場合は
「信頼されていないデベロッパ」というダイアログがでるので
[設定]
– [一般]
– [プロファイルとデバイス管理]
下の方の [ Apple Development: …. ] で始まるエントリーを選択
「デベロッパ ” Apple Development: …. のAppはこのiPhoneで信頼されていません。実行するには開発元を信頼する必要があります。」
という部分の下の青い部分( “Apple Debelopment : …)をタップ
「” Apple Debelopment: … のAppをこのiPhoneで信頼」
[信頼] をタップ
3. mac 側(Xcode)の操作
3-1. アクセサリの接続を許可
macとiPhoneを接続すると、mac 画面に下記ダイアログが表示されます。
なお、このメッセージは OS13 のものです。以前のメッセージは下記<旧手順>にあるのでそちらをご覧ください。
「アクセサリの接続を許可しますか?」
[許可] をクリック
3-2. ダウンロードしたアプリケーションの実行許可の確認
[システム設定]
[プライバシーとセキュリティ]
中央あたりに
[セキュリティ]
ダウンロードしたアプリケーションの実行許可
・App Store
・App Store と確認済みの開発元からのアプリケーションを許可 <- こちらを選択
<旧手順>
macとiPhoneをつなぐと「codesign がキーチェーンに含まれるキー ” AppleDevelopment : … ” へアクセスしようとしています。」と出るので
「パスワード」入力
[システム環境設定]
[セキュリティとプライバシー]
[一般]
下の ダウンロードしたアプリケーションの実行許可:
“iproxy”は開発元を確認できないため、使用がブロックされました。
[このまま許可] をクリック
(PR)
4. 実行
Xcode で、mac に接続した iPhone 機種を選択します。
Xcode で Run(実行)
終了するときは、[停止] アイコンをクリック
4-1. debugモード、releaseモード、profileモード について
iOS14以降、debugモードの場合、mac と接続している場合のみVSCodeやXcodeから起動可能となりました。
iPhone 実機単体でアプリを動かしたい場合は、releaseモードかprofileモードを選択しましょう。選択方法は以下のとおりです。
Xcode
[Runner] をクリック
[Edit Scheme…] をクリック
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]
Clean Successed と表示されればOK
一応、Xcodeは再起動しましょう。
まとめ
iPhoneアプリ開発を行うと、それを iPhone で試してみたいと思いますよね。
初めて iPhone で自作アプリを動かせたら、ちょっと感動します。
私はなぜか毎回感動します。
ぜひチャレンジしてみてくださいね。