はじめに
これまではStoryboardを用いたwatchOSのアプリ開発ができていたようですが、最近はそれがなくなり、SwiftUIしか使えなくなったようです。
なので、Storyboardを用いた既存のiOSアプリにwatchOSアプリを追加する方法がだいぶ変わっていたため、まとめておきます。
Targetの追加
まずはTargetを追加します。
こちらの+ボタンから、
watchOSの項目の中のAppを選択します。
名前は「Watch + 既存アプリの名前」などにしておくといいでしょう(改善の余地あり…)。また、Watch App for Existing iOS Appを選択してください。
Activateします。
次に、TARGETSからiOSアプリの方を選択し、General > Frameworks, Libraries, and Embedded Contentの欄をみます。
もしそこに先ほど追加したwatchOSのアプリが記載されていなければ、+からwatchOSアプリを追加します。
Bundle Identifierの設定
次に、2つのTargetのBundle Identifierを設定していきます。
追加したての状態だと、watchOS側のBundleがこのように不完全になっているかと思います。
iOSアプリ側のBundleをコピーし、watchOS側にペーストします。
このようになればOK。
また、watchOSのInfo.plistのWKCompanionAppBundleIdentifierに、今コピペしたiOSのBundle Identifierを入力します。
ここまで設定することで、iOSアプリにwatchOSアプリを追加することができました🎉🎉
実行する時
AppleWatchで実行する時・iPhoneで実行する時で、それぞれ実行しなければいけません。
AppleWatch側を実行するとなぜかiPhone側のアプリが閉じてしまうので、両方とも同時に実行しておきたい時にはAppleWatch→iPhone の順番で実行するようにした方がいいでしょう。
まとめ
現在あるほとんどの記事で「WatchApp Extension」が出てきますが、watchAppとwatchApp Extensionを一度に追加する機能がもうなくなってしまっているので、この記事のようにやるのが一つの方法だろうと思います。
また、watchOSの開発にSwiftを使うことはもうほとんどできないようになっているようですから、頑張ってSwiftUIに切り替えていきましょう。