How to monitor heart rate in background without affecting Activity Rings?

I'm developing a watchOS nap app that detects when the user falls asleep by monitoring heart rate changes.

== Technical Implementation ==

  • HKWorkoutSession (.mindAndBody) for background execution
  • HKAnchoredObjectQuery for real-time heart rate data
  • CoreMotion for movement detection

== Battery Considerations ==

  • Heart rate monitoring ONLY active when user explicitly starts a session
  • Monitoring continues until user is awakened OR 60-minute limit is reached
  • If no sleep detected within 60 minutes, session auto-ends (user may have abandoned or forgotten to stop)
  • App displays clear UI indicating monitoring is active
  • Typical session: 15-30 minutes, keeping battery usage minimal

== The Problem ==

HKWorkoutSession affects Activity Rings during the session. Users receive "Exercise goal reached" notifications while resting — confusing.

== What I've Tried ==

  1. Not using HKLiveWorkoutBuilder → Activity Rings still affected

  2. Using builder but not calling finishWorkout() (per https://developer.apple.com/forums/thread/780220) → Activity Rings still affected

  3. WKExtendedRuntimeSession (self-care type) (per https://developer.apple.com/forums/thread/721077) → Only ~10 min runtime, need up to 60 min

  4. HKObserverQuery + enableBackgroundDelivery (per https://developer.apple.com/forums/thread/779101) → ~4 updates/hour, too slow for real-time detection

  5. Audio background session for continuous processing (suggested in https://developer.apple.com/forums/thread/130287) → Concerned about App Store rejection for non-audio app; if official approves this technical route, I can implement in this direction

  6. Some online resources mention "Health Monitoring Entitlement" from WWDC 2019 Session 251, but I could not find any official documentation for this entitlement. Apple Developer Support also confirmed they cannot locate it?

== My Question ==

Is there any supported way to:

  • Monitor heart rate in background for up to 60 minutes
  • WITHOUT affecting Activity Rings or creating workout records?

If this requires a special entitlement or API access, please advise on the application process. Or allow me to submit a code-level support request.

Any guidance would be greatly appreciated. Thank you!

How to monitor heart rate in background without affecting Activity Rings?
 
 
Q