WatchAppのCompanion有無の違いを比較

2024/10/25に公開

違い

生成されるファイルの違い

Comanion有

Project
├ Companion
├ Companion-Tests
├ Companion-UITests
├ Companion WatchApp
├ Companion WatchApp-Tests
└ Companion WatchApp-UITests

Comanion無

Project
├ Companion WatchApp
├ Companion WatchApp-Tests
└ Companion WatchApp-UITests

Targetの違い

Companion有

  • Companion
  • Companion-Tests
  • Companion-UITests
  • Companion WatchApp
  • Companion WatchApp-Tests
  • Companion WatchApp-UITests

Companion無

  • Companion
  • Companion WatchApp
  • Companion WatchApp-Tests
  • Companion WatchApp-UITests

Deployment Info

companion有の方でだけWatchのTarget>General>DeploymentInfoにSupports Running without iOS App Installationが存在する。
これにチェックを入れるとCompanionアプリなしでInstallできるのか・・・?と思ったが若干違う。

After creating a watchOS app with a companion iOS app, you can convert the resulting dependent watchOS app to be independent of the iOS app. To convert your watchOS app, perform the following steps:
1.In Xcode, select your watchOS project to view the project editor.
2.In the General tab, select the Watch App target.
3. In the Deployment Info section, select the Supports Running Without iOS App Installation option. By default, when you create a new project, this option is in a disabled state.

https://developer.apple.com/documentation/watchos-apps/creating-independent-watchos-apps/

見たところチェックを入れると独立したアプリに変換できるとのことだがGitでの差分はこれだけで実際何が変わるのかはわからなかった。何が違うんだ。

-INFOPLIST_KEY_WKRunsIndependentlyOfCompanionApp = No;
+INFOPLIST_KEY_WKRunsIndependentlyOfCompanionApp = YES;

BuildSettings

info.plist Values内で若干の差分がある

  • App is Available Only on AppleWatchという値がcompanion有だとNo,無しだとYesになっていた。
  • WatchKit Companion App Bundle Identifierという値にcompanion有りではコンパニオンアプリのidentifierが設定されていた。

まとめ

あとからCompanionアプリを生やしたくなったらこの差分を見たら多分できると思う。

参考

Discussion