🙆

watchOSアプリのバイナリをXcode Cloudでストアにあげるときの詰まりポイント

2023/05/12に公開

前回に引き続きWristCounterを開発したときの知見です。

Xcode CloudでApple Watch単独のアプリをあげる

watchOSアプリは、iOSアプリ必須か、iOSアプリなしのApple Watch単独アプリかが選べます。

https://developer.apple.com/documentation/watchos-apps/setting-up-a-watchos-project

↑「Watch-only App」を選んでください。
今回のWristCounterはApple Watch単独アプリにしました。

これをXcode Cloudでアーカイブ作業までして、バイナリをストアにあげようとしました。
その作業でwatchOS特有の詰まりがあったので、書きます。

Bundle idが2つ

watchOSアプリは、watchOSのターゲットでBundle idができます。
そしてApple Watch単独アプリであっても、iOS向けのBundle idもあります。

iOS向けのBundle idを指定してしまう問題

Xcode Cloudはターゲット単位に設定できるので、watchOSのターゲットを指定できます。
が、ワークフローの中でどうもiOS向けのBundle idが指定されるっぽくて、
Apple Watch単独アプリであっても、iOS向けのBundle idの設定が必要でした。

初期設定だと、watchOSのBundle idは「{iOSターゲットのBundle id}.watchkitapp」で設定されます。

Apple Developerからidを追加

↑まず「Certificates, Identifiers & Profiles」からidを追加します。

App Store上のApp情報のBundle idを変更

Xcode Cloudの設定だと、App StoreのBundle idにwatchOSのidを入れます。
ここをiOSのBundle idに変更します。

まとめ

上記2つのidを変更すると、Apple Watch単独アプリでもバイナリがあげられるようになりました。

(了)

Discussion