A sensor on watchOS needs three things before it produces data: a capability on the target, a background mode if it runs with the wrist lowered, and a privacy string explaining why. Everything on this page is set on the CarpWatch Watch App target.

1. Capabilities

Select the watch target → Signing & Capabilities+ Capability and add: This writes CarpWatch Watch App.entitlements:
CarpWatch Watch App.entitlements
You do not need HealthKit, microphone, or location capabilities on the Runner (iOS) target for this package (unless your phone app also needs them)

2. Background modes

Adding the capabilities above writes the background modes for you. Verify the watch target ends up with:
The background mode has to match the backgroundSessionType you set on the AppleWatchDevice. microphone needs the audio mode; workout needs workout-processing. Without the matching mode the session fails to start and the watch app is suspended as soon as the participant lowers their wrist.

3. Privacy strings

watchOS refuses to show a permission prompt whose purpose string is missing. Xcode 15 and later generate the watch app’s Info.plist from build settings, so the easiest place to add these is the target’s Info tab.

Next step

The watch app