🚨

【Swift】WCSession counterpart app not installed エラーの解消

2024/10/09に公開

初めに

今回は Swift で watchOS の開発している途中で発生した「WCSession counterpart app not installed」というエラーを解消する方法をメモ程度で残しておきたいと思います。

記事の対象者

  • 上記エラーを解決したい方

環境

  • Xcode 16.0
  • MacBook Pro Apple M3
  • iOS Simulator ( iPhone16 Pro )
  • watchOS Simulator ( Apple Watch Ultra 2 via iPhone 16 Pro )

エラー内容(一部省略)

WCSession counterpart app not installed
Failed to send CA Event for app launch measurements for ca_event_type: 0 event_name: com.apple.app_launch_measurement.FirstFramePresentationMetric
Failed to send CA Event for app launch measurements for ca_event_type: 1 event_name: com.apple.app_launch_measurement.ExtendedLaunchMetrics
WCSession counterpart app not installed
AddInstanceForFactory: No factory registered for id <CFUUID 0x6000002f5a20> F8BB1C28-BAE8-11D6-9C31-00039315CD46
       LoudnessManager.mm:709   unable to open stream for LoudnessManager plist
NSBundle file:///Library/Developer/CoreSimulator/Volumes/iOS_22A3351/Library/Developer/CoreSimulator/Profiles/Runtimes/iOS%2018.0.simruntime/Contents/Resources/RuntimeRoot/System/Library/PrivateFrameworks/MetalTools.framework/ principal class is nil because all fallbacks have failed

エラー原因

エラー内容からもわかる通り、 WCSession で接続されているはずのアプリケーションが見つからないことが原因であると考えられます。
今回の場合は watchOS が接続されていないようです。

解決策

解決は以下のような手順で行います。

  1. iOS アプリ側の「General」を開く
  2. 「Frameworks, Libraries, and Embedded Content」を確認
  3. 以下の画像のように 「Frameworks, Libraries, and Embedded Content」の項目に指定がない場合は watchOS のアプリを追加

自分の環境では、以下の画像のように watchOS のアプリを追加した後、Clean Build Folder を実行すれば問題なく接続することができました。

なお、iOS と watchOS の連携には他にも設定が必要であるため、それらに関しては今後まとめられたらと思います。

以上です。
最後まで読んでいただいてありがとうございました。

参考

https://stackoverflow.com/questions/60590338/wc-wcsession-counterpart-app-not-installed

Discussion