この記事は、XcodeでWatchOSアプリを開発するときの実機デバッグついて少し手間取ったので、まとめています。
(本当はAppleWatchアプリ作ったよ!という記事を書きたかったけど、それは今度に...)
本記事の検証条件は以下の通り(条件が違うために手間取ったので...)
対象 | バージョン |
---|---|
macOS | Sonoma 14.0 |
Xcode | 15.1 |
iOS | 17.2.1 |
WatchOS | 10.2 |
ちなみに、アプリは事前に作成しているものとします。
【前提】デベロッパモードについて
- iOS16、watchOS9から、AppStore公開前のアプリを実機で動かすためのデベロッパモードという機能が実装された
- 「設定」アプリの「プライバシーとセキュリティ」から「デベロッパモード」を選択し、有効にすることでXCode上でシミュレータとして選択できるようになり、実機でのデバッグができる
【問題】「プライバシーとセキュリティ」に「デベロッパモード」が存在しない
デベロッパモードを有効にしないと、XCode上でシミュレータとして選択できない。これは困った。
【結論】Apple Watchと接続されたiPhoneをケーブルでMacに接続する
iOS17やwatchOS10から、セキュリティ面を考慮して「開発者でないとデベロッパモードを有効にできない」仕様になったため、開発者であることを認知させる手順が必要ということ。
以下の手順を踏めば、無事Apple Watchを実機デバッグできることがわかった。
結構手間だけど、1回シミュレータとして登録できれば次回からはデベロッパモードの有効だけでOK。
- Mac、iPhone、Apple WatchのOSを最新化する
- iPhoneをMacにケーブルで接続した上で「信頼する」を選択
- iPhoneの「設定」アプリにて「プライバシーとセキュリティ」から「デベロッパモード」を選択し、有効にする(ペアリング後はWi-Fi接続が可能)
- iPhoneを再起動する
- Xcode上でiPhoneをシミュレータとして登録する
- Mac、Apple Watchを同じWi-Fiに接続する
- Apple Watchで「信頼する」を選択
- Apple Watchの「設定」アプリで「プライバシーとセキュリティ」から「デベロッパモード」を選択し、有効にする
- Xcode上でApple Watchをシミュレータとして登録する
【アプローチ】どのように取り組んだか
こっからは調べたことを記録として残しておきます。
とりあえず公式ドキュメント(英語)をググる
ふむふむ、iPhoneをシミュレータとして登録(ペアリング)する際は、ケーブルを通してペアリングをしないといけない模様。
2回目以降は同一Wi-Fiでデベロッパモードになっていればケーブルがなくても実機検証できるとのこと。
またwatchOSの場合は、iOSが17以降であれば、XcodeとiPhoneがペアリングされていれば同一Wi-FiでApple Watchのペアリングもできるとのこと。
ということまでわかったので、試してみる。
ケーブルをMacに挿してiPhoneを再起動したら無事iPhoneにデベロッパモードが表示された。
しかし、Apple Watchに一向にデベロッパモードが表示されない。
- Apple Watch上で「Macを信頼する」は選択済
- iPhoneはXcodeにペアリング済
- Mac、iPhone、Apple Watchはすべて同一Wi-Fiに接続済
一応Apple Watchを再起動したものの,結果は変わらず。。
現在対応方針検討中...(なんとか24日中に解決したい...)
参考