I have an application with watchKit, now I am removing support to iWatch app. Is it possible that iWatch app will automatically disappear? Right now, it is not.
Apple Watch
RSS for tagDiscuss hardware-specific topics related to Apple Watch.
Posts under Apple Watch tag
78 Posts
Sort by:
Post
Replies
Boosts
Views
Activity
Hello everyone, I’m currently developing an app for the Apple Watch and am working on implementing a dimming feature that activates when the device is in Theater mode.
Is there any way to detect programmatically whether Theater mode is enabled or disabled? Thanks!
I bought an Apple Watch series 9, but I'm not very comfortable using the standard Apple health app, so I decided to try huawei health. The question is, is there any way to sync your Apple Watch with this app? I am also interested in how to find out the temperature on the wrist in degrees, and not how much it deviates from the norm? And now a question for Apple personally: why should I LIE that I am 18 years old (I am 16 years old) in order to measure the oxygen level in my blood? Why am I paying 36,000₽ ($403.47) for two non-working chips?! One of them is NFC, and the second is a second-generation ultra wideband chip, which are vital for me personally! Don't be like Samsung, they can't find headphones at all through their locator if the case is closed, and you tell Apple that just use ultra wideband, users from Russia just laugh at you when you mention this chip, I've been looking for my headphones for 3 days.
I'm sorry if it's too aggressive at the end, it just doesn't suit me that I'm paying a lot of money for something that doesn't work.
[Everything was written through a translator]
Always on not working. Watch also not switching on when wrist is raised. Tapping on the screen lights it up.
Any idea if this is a bug our if I may be doing something odd. Tried all the settings available.
Hi! I'm working on an app that records x,y,z accelerometer values and when subjecting the watch to extreme acceleration (a swing) I notice the x, and y acceleration seems to get stuck around ~30G.
Is this a hardware limitation of the watch sensors? I have a Apple Watch Series 7.
Below is the chart of the acceleration recording session.
Appreciate your insights!
Joao
Hello everyone,
I was wondering if I downgrade my iPhone to iOS 18 developer beta 1 from developer beta 4 (rereleased) version, what will happen to my Apple Watch Series 6 running watchOS 11 beta 4?
I seen people say that their Apple Watches unpaired and they could not pair them again when the iPhone is downgraded from 18 beta to 17.5.1. Though it is within the same iOS version in question, will I still need to get my Apple Watch downgraded as well if I use an IPSW containing the 1st developer beta of iOS 18?
I have a Companion Watch App for my iPhone App and communicate via the messages and applicationContext between the watch and the phone. If I start an Event at my iPhone and my watch is turned on the extendedRuntimeSession starts as it should. But as soon as my Watches Display is off or Im not in the App I can't start the extendedRuntimeSession, even though I receive it trough the applicationContext and I get the following errorMessage when trying to start the session in the background.
-[CSLSSessionService startSession:completionWithExpirationDate:]_block_invoke session A76273B7-3E01-4333-920C-0614C1FAC5B0 encountered error Error Domain=com.apple.CarouselServices.SessionErrorDomain Code=12 "app not in required app state" UserInfo={NSLocalizedDescription=app not in required app state}
Is Running is true
Timer started/continuend
-[SPApplicationDelegate appBeginWorkout:]_block_invoke:1334: Asked to start a workout, but WKExtensionDelegate <SwiftUI.ExtensionDelegate: 0x15d7c500> doesn't implement handleWorkoutConfiguration:
Extended runtime session invalidated with reason: WKExtendedRuntimeSessionInvalidationReason(rawValue: -1), error: Optional(Error Domain=WKExtendedRuntimeSessionErrorDomain Code=3 "The app must be active and before applicationWillResignActive to start or schedule a WKExtendedRuntimeSession." UserInfo={NSLocalizedDescription=The app must be active and before applicationWillResignActive to start or schedule a WKExtendedRuntimeSession..})
I control and manage my session like this:
class WatchViewModel: NSObject, ObservableObject {
static let shared = WatchViewModel()
var session: WCSession
var extendedRuntimeSessionManager: ExtendedRuntimeSessionManager
var lastMessage: [String: Any] = ["method": "none"]
@Published var iOSIsReachable = false
@Published var dataFromMessages = DataFromMessages()
@Published var flextailCoordinates: FlextailCoordinates?
init(session: WCSession = .default, extendedRuntimeSessionManager: ExtendedRuntimeSessionManager = ExtendedRuntimeSessionManager()) {
NSLog("init start")
self.session = session
self.extendedRuntimeSessionManager = extendedRuntimeSessionManager
super.init()
self.session.delegate = self
session.activate()
NSLog("init done")
}
}
class ExtendedRuntimeSessionManager: NSObject, WKExtendedRuntimeSessionDelegate, ObservableObject{
var extendedRuntimeSession: WKExtendedRuntimeSession?
@Published var sessionIsActive = false
override init() {
super.init()
setupExtendedRuntimeSession()
}
func setupExtendedRuntimeSession() {
extendedRuntimeSession = WKExtendedRuntimeSession()
extendedRuntimeSession?.delegate = self
}
func startExtendedRuntimeSession() {
if sessionIsActive == false{
extendedRuntimeSession?.start()
} else{
print("Already running extendedRuntimeSession")
}
}
func stopExtendedRuntimeSession() {
extendedRuntimeSession?.invalidate()
sessionIsActive = false
setupExtendedRuntimeSession()
}
// WKExtendedRuntimeSessionDelegate methods
func extendedRuntimeSessionDidStart(_ extendedRuntimeSession: WKExtendedRuntimeSession) {
print("Extended runtime session started")
sessionIsActive = true
}
func extendedRuntimeSessionWillExpire(_ extendedRuntimeSession: WKExtendedRuntimeSession) {
print("Extended runtime session will expire soon")
}
func extendedRuntimeSession(_ extendedRuntimeSession: WKExtendedRuntimeSession, didInvalidateWith reason: WKExtendedRuntimeSessionInvalidationReason, error: Error?) {
print("Extended runtime session invalidated with reason: \(reason), error: \(String(describing: error))")
sessionIsActive = false
setupExtendedRuntimeSession()
}
}
I tried sending it through the applicationContext but that didn't work, even though the message gets received and parsed as I want. The error specifically seems to be in the starting of an extendedRuntimeSession in the background.
So recently I updated my iPhone 14 Pro to the iOS 18 public beta version with that been said I didn’t really like how my phone was working and been laggy so I downgrade to the latest iOS 17 that’s available. My iPhone is working perfectly fine now.. the issue now is that my Apple Watch is not letting me pair my phone agin its keeps saying my phone is out of day I should also mention when I update my iOS I also updated my os too my watch but now I can’t pair my watch. I’ve contacted Apple via chat and also via phone call nothing works I also have and reference number regarding this issue.. PLEASE HELP!!!
Mirroring work a first, and then no work after restart. Charging speed is extremely low
My Apple Watch 7 has never given me issues. I wore it to work yesterday as usual and put it on the charge at night. This morning I wake up, put it on and the screen is flickering. I can still make out what’s on the screen but it’s a shade of whitish/gray. I am able to input my passcode and select options. I force reset it twice and deleted & reinstalled it, however, issue not resolved. I also turned it off for a few hours and turned it back on. I spoke with Apple support and they ran diagnostics to reflect there’s nothing wrong with the watch. Now they want to charge $275 to fix an issue that I didn’t cause and they can’t find anything wrong with it. Has this recently happened to anyone else?
Hello,
I am developing an application for the Apple Watch that requires the screen to remain active even when the wrist is moved into a down position. The core functionality of my app involves providing continuous visual and auditory guidance, and it's critical that the screen stays on without going into power-saving mode while the app is in use.
Specifically, I am looking for a way to:
1.Disable the screen's power-saving mode when the wrist is moved down.
2.Ensure the screen remains active as long as the app is in the foreground.
I understand that certain power management features are built into watchOS for battery conservation, but I would need this behavior to be overridden only while the application is running (the app would not be in the foreground for extended periods of time).
Is there an approved method or best practice within Apple's guidelines to achieve either of these functionalities?
Thank you for your assistance.
Hello,
I am developing an application for the Apple Watch that requires the screen to remain active even when the wrist is moved into a down position. The core functionality of my app involves providing continuous visual and auditory guidance, and it's critical that the screen stays on without going into power-saving mode while the app is in use.
Specifically, I am looking for a way to:
1.Disable the screen's power-saving mode when the wrist is moved down.
2.Ensure the screen remains active as long as the app is in the foreground.
I understand that certain power management features are built into watchOS for battery conservation, but I would need this behavior to be overridden only while the application is running (the app would not be in the foreground for extended periods of time).
Is there an approved method or best practice within Apple's guidelines to achieve either of these functionalities?
Thank you for your assistance.
I have an iOS app, with a watch counterpart, used to enter scores for a match. The watch app starts a match (and a workout session) when it receives a notification from the mobile app, after the user started a match on their phone. Basically the watch app is just a more convenient way of inputing scores, so the user wouldn't have to reach for and unlock their phone every time - therefore the need for the watch app to always be displayed.
The flow follows these steps:
the user is prompted for workout session access when first launching the app;
after they accept, I start the workout;
the delegate method workoutSession(didChangeTo) returns the expected values;
the app remains active, even when the user lowers their wrist;
when I go to the clock, the app's icon is displayed in a circle at the top (bringing the app back to foreground on tap).
The only problem is that the "Return to app" option in the "Return to Clock" settings menu is missing, what do I need to do in order to display it?
Here's an example of what it looks like for the Strava app:
and how it looks for mine.
Just upgraded to Watch OS11 Beta with the watch on charge and put the watch on and it was only 40% charged.
I put it back on the charger and it didn’t charge.
I erased it and went to repair and it is flat 20 minutes after it was on 40% and sitting on the charger.
the message on screen is ‘LOW BATTERY to continue, connect Apple Watch to it’s charger.’
Have I bricked my watch?
Thanks
This has long been a frustration of mine on Apple Watch, and I've brought it up at WWDC labs every year to no avail but while the limitation on the Apple Watch to only be able to query 7 days of HealthKit data may have made sense early in the AW's lifetime for battery preservation etc., it really no longer makes sense in modern AW development.
Especially not with stand alone watch apps, as a developer I am prohibited from building the same experience on the Apple Watch that I can in an iPhone app. For example, my app looks at your current health metrics and compares them to your 60 day baseline to identify any deviations from your normal ranges. I cannot create the same experience on the watch using purely HealthKit queries, and am limited to using either iCloud or Watch Connectivity which have their own drawbacks and are not an option for a stand alone watch app.
Can we finally expand the length of HealthKit queries the AW can make so that we can build the same powerful experience on the watch that we can on iPhone?
Thank you!
Gary
See also Feedback FB7649612 (from April 2020).
Hi everyone,
With iOS 18 and watchOS 11 it is possible to pause your activity rings so that a streak is not broken when you are ill or something like that.
When we request data from the HealthStore, is there a way to know that a user has set this option for a particular date or period?
Or will the data for that date just return nil for all 3 ring values or even skip the day in the dataset?
I have an app in which I also keep track of people's streaks, so it would really useful to know if the activity rings are paused.
Thanks in advance!
Are there any changes in the frequency of HRV samples the Apple Watch takes in watchOS 11? Currently sample rates are very low except for users who have Afib History turned on. There should be some other way for users to get the benefit of more HRV sampling per day without needing to turn Afib History on if they haven't been diagnosed with Afib.
Also is it possible for a 3rd party app to trigger an HRV sample?
Thanks!
Gary
Hello,
I am developing an Apple Watch app in Swift and SwiftUI that needs to receive real-time heartbeat data to visualize the time intervals between heartbeats. The app draws circles on the screen where the size and position of each circle are based on the time interval between consecutive heartbeats.
I am currently using the HKQuantityType for .heartRate from HealthKit to get heart rate data and calculate the intervals. However, I am wondering if this is the best approach for my requirement. I came across the HKElectrocardiogram class, and I am not sure if it would be a better fit for obtaining real-time heartbeat intervals.
My questions are:
Real-Time Heartbeats:
Is HKQuantityType for .heartRate the most appropriate way to get real-time heartbeat data for calculating intervals between beats?
Can HKElectrocardiogram provide real-time heartbeat intervals, or is it more suited for detailed ECG recordings rather than instantaneous heartbeats?
Accuracy and Performance:
Which method provides the most accurate and real-time data for heartbeat intervals?
Are there any other APIs or services in the Apple Watch ecosystem that I should consider for this purpose?
Best Practices:
What are the best practices for implementing real-time heartbeat monitoring in an Apple Watch app?
Are there any sample projects or documentation that could help me understand the optimal way to achieve this?
Here is a brief overview of my current implementation using HKQuantityType for .heartRate:
import Foundation
import HealthKit
class HeartRateMonitor: NSObject, ObservableObject {
@Published var heartRate: Double = 0.0
@Published var intervals: [TimeInterval] = []
private var lastHeartRateTimestamp: Date?
private var healthStore: HKHealthStore?
private let heartRateQuantityType = HKObjectType.quantityType(forIdentifier: .heartRate)
private let appStartTime: Date
override init() {
self.appStartTime = Date()
super.init()
if HKHealthStore.isHealthDataAvailable() {
self.healthStore = HKHealthStore()
self.requestAuthorization()
}
}
private func requestAuthorization() {
guard let heartRateQuantityType = self.heartRateQuantityType else { return }
healthStore?.requestAuthorization(toShare: nil, read: [heartRateQuantityType]) { success, error in
if success {
self.startMonitoring()
}
}
}
func startMonitoring() {
guard let heartRateQuantityType = self.heartRateQuantityType else { return }
let query = HKAnchoredObjectQuery(
type: heartRateQuantityType,
predicate: nil,
anchor: nil,
limit: HKObjectQueryNoLimit) { (query, samples, deletedObjects, newAnchor, error) in
guard let samples = samples as? [HKQuantitySample] else { return }
self.process(samples: samples)
}
query.updateHandler = { (query, samples, deletedObjects, newAnchor, error) in
guard let samples = samples as? [HKQuantitySample] else { return }
self.process(samples: samples)
}
healthStore?.execute(query)
}
private func process(samples: [HKQuantitySample]) {
for sample in samples {
if sample.endDate > appStartTime {
let heartRateUnit = HKUnit.count().unitDivided(by: HKUnit.minute())
let heartRate = sample.quantity.doubleValue(for: heartRateUnit)
DispatchQueue.main.async {
self.heartRate = heartRate
if let lastTimestamp = self.lastHeartRateTimestamp {
let interval = sample.endDate.timeIntervalSince(lastTimestamp)
self.intervals.append(interval)
}
self.lastHeartRateTimestamp = sample.endDate
}
}
}
}
}
Thank you for your guidance and suggestions!
We created an app for iphone which includes a Watch app. The app works well during debugging, and also in TestFlight the Watch app installs nicely and does what it is supposed to do. However, when we make the app available through the Apple Business Manager (the app is for internal use by a company) the Iphone app downloads without problems, but the app for the Apple Watch does not work.
When I go to the Watch app on my Iphone (where you can manage the apps on your Watch and so on) my app is listed, but when I press install I see a loader for a few seconds, then it stops but nothing else happens.
So the code seems to be good, but after I download the app with a code through the Business Manager, then I cannot install the Watch version of the app.
Using Xcode to build and deploy the app to my watch, this is what I get:
“Waiting to reconnect to Apple Watch. Previous preparation error: Transport error." And then “Connecting to Apple Watch. Xcode will continue when the operation completes.”
And these messages continue to switch between each other.
Sometimes the watch to connect and the application starts, but more often a scenario occurs with endless reconnection.
I'm using: MacOS 14.4.1 (MacBook Pro 2019; 1.4 GHz Quad-Core Intel Core i5), Xcode 15.3, Watch OS 10.2 (Apple Watch SE 1), iOS 17.1.1 (iPhone 15 Pro).
Methods I tried:
Connecting Macbook, iPhone and Watch to the same WIfi network;
Disabling Watch (and IPhone) from the "Devices and Simulators" menu and setting up Watch (and IPhone) from the beginning.
Any help?