XcodeでAppleWatchアプリを実機デバッグする

はじめに

AppleWatch向けのアプリでも作ってみようかと久しぶりにXcodeを触ってみました。

iPhoneアプリは簡単に動いていたのでAppleWatchも簡単に動くかと思いきや、エラーが発生して実機デバッグができるようになるまで数日かかってしまいました。

他にも困っている人がいるかもしれないので、やったことを整理しました。

エラーの症状

  • XCodeでAppleWatchのプログラム(SwiftUI)をbuild
  • シミュレータ上では動くことを確認。
  • TargetをAppleWatchの実機に切り替えて動かそうとすると

  "AppleWatch名" via "iPhone名" (waiting for first unlock)

  というメッセージが出てきてAppleWatchにアプリを転送できない。

  • iPhoneとAppleWatchはペアリング済かつ共にアンロック状態
  • iPhone用のプログラムはiPhoneの実機上で問題なく動作している

使用環境

項目 機種 バージョン
パソコン MacBookAir M2 Ventura 13.3.1
iPhone iPhone 13Pro iOS16.4.1
AppleWatch AppleWatch Series5 WatchOS 9.4
Xcode 14.3

注:OSやXcodeのバージョンは下記記事にて更新後の状態

やったこと

1. MacOSiOS、WatchOSをすべて最新版に更新する

 下記記事を参考に更新。

support.apple.com

support.apple.com

support.apple.com


2. Xcodeを最新版に更新

 MacのAppStoreで参考版に更新。


3. iPhoneを開発者モードに切り替える

 (1) iPhoneで設定アプリを開く
 (2)「プライバシーとセキュリティ」を開く

 (3) 下の方にあるデベロッパモードをクリック

 (4) 注意事項をよく読んでからデベロッパモードをONにする


4. AppleWatchを開発者モードに切り替える

 切り替えはAppleWatch側で行います。
 iPhone側のWatchアプリではありません。

 ここがハマりどころの一つでした。

(1) AppleWatchで設定アプリを開き、「プライバシーとセキュリティ」を開く


(2)「デベロッパモード」を開く


(3) 注意事項をよく読んでからデベロッパモードをONにする
  英語の注意書きはiPhoneの時と同様の内容が書かれています。

(4)再起動を求められるので「Restart」をクリック

(5)再起動後にもう一度確認を求められるので「Turn on」をクリック


5. MaciPhoneの間をUSBで有線接続する

ここもハマりどころでした。
本来、XcodeはUSB以外にWifi経由でも実機に転送が可能です。
iPhoneアプリWifi経由でも無事転送できていましたが、WatchアプリはWifi経由ではうまく転送できませんでした。このため、USBで有線接続することにしました。

結果

私の環境では、上記の対策を行った状態で

  • MaciPhoneの間をUSBで有線接続
  • iPhoneとAppleWatchをアンロック

とすることで、AppleWatchにアプリを転送できました。
うまく行かない場合は、各機器を一通り再起動すると良いかもしれません。

さて、何を作りますかね〜


では、また。