はじめに
AppleWatchは発売からすでに5年が経過しようとしていますが、
アプリの作成に関する記事、事柄というのはまだあまり世の中に出回っていない認識です。
「今iOS向けに作成しているアプリに、AppleWatchのアプリを紐づけて配信したいけど、どんな手順が必要なんだろう?」
といったことでお困りの方も多いのではないかと多います。
本記事はそんな方向けに、既存のiOSアプリへAppleWatchプロジェクトを紐づける際の手順・注意点を記載します。
手順
※以下はすでにiOSアプリが存在する前提で話を進めていきますが、
仮にAppleWatch単体で動くアプリを作りたい!という場合にも、概ね参考にはなるかと思います。
AppleWatchプロジェクトの作成
- 
なにはともあれ、まずはXCodeを開きます。 
- 
次に、Xcode上部の File → New → Target...を選択します。
 下記のようなウィンドウが開くので、[Watch App for iOS App] を選択し、[Next]を押下します。
 ※ちなみにここで[Watch App]を選択すると、AppleWatch単体で動くアプリになりますのでご注意ください。
  
- 
次の設定画面では、 Product Nameに対してAppleWatchAppの命名を行います。(iOSアプリの名称)WatchAppなどが一般的でしょうか?
 OrganizationNameは記憶上使ったことがない気がするので、適当に入力すればいったんOKです。
 → project.pbxprojファイルにもこの名称は刻まれていなかったため、本当に不要かも・・・?ちなみに下記画像にも現れている Complicationというのは、
 AppleWatchのホーム画面にアプリへのショートカットを配置するためのものです。
 少々設定/作成に難がありますが、あったら便利な機能ではあるのでこの段階でcheckを付けておくのもアリかと。
  
- 
ここまでくると、TargetにWatchAppとWatchAppExtensionの2つのTargetが追加されたかと思います。 
 これらは依存関係がありますので、AppleWatchのアプリを動かすのには2個セットが当たり前、と考えておいてもらってOKです。プロジェクトの作成自体はこれで完了です!  
ProvisionigProfileの追加
- 
今後AppStoreへ審査提出していく際には、 
 今までのiOSアプリに対してこれら2種のTargetが追加配布されるような形となります。
 XCodeのSigning & Capabilitiesの欄をチラ見してしまった方はお気づきかもしれませんが、
 つまり新しいProvisioningProfileも2つ必要ということです。
- 
ここは特に難しい点はありませんが、iOSアプリ同様にApple Developer Programより、 
 Identifierの登録×2とProvisioning Profileの登録×2を行なってください。
- 
Identifier登録時に必要なCapabilitiesの登録についても、AppleWatchだから、という特別な項目はありませんのでご安心を。 
WatchAppの中身を作っていく
- ここは割愛。
 最近ですとSwiftUIを用いてのUI作成もできるようなので、今後どんどんアプリ作成の幅が広がることを願います...!!!
Buildして実機で動かしてみたい!
- 
通常のiOSアプリと同様です。 
 まずはAppleWatchとペアリングしたiPhoneを、PCに接続してください。
 すると、接続中のDevice一覧にiPhone + AppleWatchといった形で表示されるかと思います。
 TargetはiOSアプリのままでも、Buildすれば勝手にAppleWatchにインストールされます。
 ただし、AppleWatch側のデバッグを行いたい場合には、TargetをAppleWatchアプリに設定する必要があります。ちなみにiOS同様、シュミレーターで動かすことも勿論可能です。 
 操作性はかなり悪いですが。。。(笑)
AppleWatchアプリならではの注意事項
- 
[ 審査提出について ] 
 iOSアプリ, WatchApp, WatchAppExtensionのそれぞれのVersion, Buildの値は同一である必要があります。
 これを守らないとArchive後のUploadフローで怒られてArchiveやり直しになるので注意が必要です。
 また当然ですが、AppleWatch用のアイコンを用意したり、AppStoreに掲載するためのスクリーンショットなどを撮る必要もあります。
 初めて提出する際は、実際の利用に際したビデオの作成であったり、アカウント情報を求められることもあるのでご注意を。詳しい仕様は下記URLで確認可能です。 
 https://help.apple.com/app-store-connect/#/devd274dd925
- 
[ アプリインストールについて ] 
 以下のすべての場合において、AppleWatchアプリはiOSアプリをインストールすることにより自動でインストールされます!- 実機デバッグ時
- DeployGateなどのアプリインストールサービスを用いた際
- TestFlight
- 実際のAppStoreからのインストール
 ※逆に「AppleWatchからのみアプリアンインストールしたい」みたいなケースでは、
 iPhoneに備わっている[Watch]アプリから削除することが可能です。
 
- 
[ 審査自体について ] 
 AppleWatchのアプリが追加されたからといって特段審査が遅くなる、といったことはないように感じます。
- 
[ Targetの依存関係について ] 
 XCodeのGUI上で、プロジェクトのBuild Phasesをみればわかりますが、
 各依存関係は以下のようになっています。
 WatchAppExtension → WatchApp → iOSApp少し奇妙ではありますが、 Embedという形で逆向きの依存関係も持っています。
 これもBuild PhasesのEmbed Watch Content,Embed App Extensionsで確認可能です。
- 
[ Apple Watchへの通知ってどうなるの? ] 
 特に意識せずとも、AppleWatchが勝手に制御してくれます。
 iOSアプリへ通知があって、かつApple Watchを装着していれば振動とともに教えてくれます 
おわりに
たしかにAppleWatchの(特に日本向け)記事は少ないのですが、
こうまとめてみるとプロジェクトのスタートも、審査に必要なことも比較的明確でそれほど怖いものではありません。
Let's enjoy AppleWatch!
