Posts

Post not yet marked as solved
0 Replies
485 Views
I'm using the new watchOS 9 HKWorkoutActivity in my interval training app (Intervals Pro) for each interval. It's a great addition since all the intervals now show in the Apple Fitness app, however, if the workout has lots of activities then saving the workout is painfully slow. For example, on my Apple Watch Ultra I saved a workout with 63 activities and it took more than 1 minute. Here's a code snippet: try await builder.endCollection(at: workoutEndDate) try await builder.addMetadata(metadata) try await builder.finishWorkout() // This is SLOW Is anyone else having the same issue? To demonstrate the issue you can look at a Test Flight build of Intervals Pro: https://testflight.apple.com/join/Nn7iSOzY Tap on the More tab in the iPhone app and then the Apple Watch Settings. On that screen you'll see a switch to either enable or disable workout activities. To demonstrate the issue, edit a timer to continue until manually stopped by changing the Number of Cycles to "Until Stopped". Then start the timer on the watch. Let it run for a period of time to create more than 50 intervals, for example, then stop the timer. Swipe to the leftmost screen on the watch, tap pause, then tap end. At that point you'll see how slow the workout saved. Next, you can go back to the iPhone app, disable using workout activities and repeat the test. The workout will save quickly in this case. I've filed a feedback.
Posted
by jbailey.
Last updated
.
Post not yet marked as solved
2 Replies
1.3k Views
I'm using watchOS 9 beta 2 and I'm not getting the new running metrics in my workout app. Using HKLiveWorkoutDataSource attached to a HKWorkoutBuilder ActivityType is running Tried enabling the collection of the new metrics According to Jorge M in the WWDC labs: "Yes, the new running metrics are also available for 3rd party applications. If you are using an HKLiveWorkoutDataSource attached to a HKWorkoutBuilder in your application, the new metrics would be collected by default." The Health app does not show any Related Samples for these types. Am I doing something wrong or are they not available yet to 3rd party workouts? I do see them for the Apple Workout app.
Posted
by jbailey.
Last updated
.
Post not yet marked as solved
0 Replies
1.2k Views
I'm trying to conditionally support new features in iOS 15 and watchOS 8 by using the @available modifier. However, when running on iOS 14.x the app crashes on launch looking for symbols that found only in iOS 15. For example, scenePadding: dyld: Symbol not found: _$s7SwiftUI4ViewPAAE12scenePaddingyQrAA4EdgeO3SetVFQOMQ That class that uses scenePadding is in my watchOS app and is has an @available modifier. Any idea what's going on?
Posted
by jbailey.
Last updated
.
Post not yet marked as solved
5 Replies
4.0k Views
In watchOS 4 Beta 4 (and possibly later versions of watchOS 3), the WCSession isReachable comment is returning false and sendMessage fails if my watch fitness app running a workout session is not actively displayed on the watch face. This worked fine in earlier versions of watchOS 3.The documentation of the isReachable property states:WatchKit extension. The iOS device is within range, so communication can occur and the WatchKit extension is running in the foreground, or is running with a high priority in the background (for example, during a workout session or when a complication is loading its initial timeline data).What I observe is that if the watch app is running a workout session in the background, isReachable is FALSE and sendMessage fails.Can others confirm this issue or have any insights?
Posted
by jbailey.
Last updated
.
Post not yet marked as solved
1 Replies
1.6k Views
I'm using Xcode 12.2 and have an app that support iOS 14 and iOS 13. I just release a new version of the app and iOS 13 users are seeing missing SF Symbols. For example, x.mark.circle does not appear in the iOS 13 version of the app. Does anyone have any ideas? I have some very unhappy users. Rebooting, reinstalling does not fix the issue.
Posted
by jbailey.
Last updated
.
Post not yet marked as solved
4 Replies
1.1k Views
I'm have an iPhone app that starts the watch app using HKHealthStore::startWatchApp. If I pass a locationType of outdoor, the watch app WKExtensionDelegate method gets passed unknown. This cause distance not to be tracked by my watch app. With iOS14/watchOS 6 things continue to work as expected. Is this a known bug that's already fixes in the betas?
Posted
by jbailey.
Last updated
.
Post not yet marked as solved
3 Replies
1.5k Views
The Apple Workout app can take advantage of the "always on" display for series 5 watches. I didn't hear any mention of third party workout apps. Can they take advantage of it? Are there new APIs needed?
Posted
by jbailey.
Last updated
.
Post not yet marked as solved
1 Replies
846 Views
In iOS 13 beta 6, the INVoiceShortcutCenter.shared.getAllVoiceShortcuts() method is not returning existing shortcuts. The same code worked fine in iOS 12. Below is the code that I used to create the NSUserActivity for the shortcut:func createUserActivityForShortcut(workoutName: String, timerID: String) -> NSUserActivity? { let userActivity = NSUserActivity(activityType: "com.mycompany.myapp.start-timer") userActivity.isEligibleForSearch = true userActivity.isEligibleForPrediction = true userActivity.suggestedInvocationPhrase = "Start \(workoutName)" userActivity.title = "Start \(workoutName)" userActivity.userInfo = ["timerID": timerID] userActivity.persistentIdentifier = timerID userActivity.needsSave = true userActivity.requiredUserInfoKeys = ["timerID"] userActivity.becomeCurrent() return userActivity }Steps to Reproduce:1) Create NSUserActivity using the above method2) Add a voice shortcut using INUIAddVoiceShortcutViewController3) Retrieve list of voice shortcuts using INVoiceShortcutCenter.shared.getAllVoiceShortcuts and the list is emptyI've reported the issue, but is anyone else having the same problem?
Posted
by jbailey.
Last updated
.
Post not yet marked as solved
6 Replies
1.5k Views
Is anyone else having issues with becomeCurrentPage()? I've reported the issue with Feedback Assistant, but I'm looking for a workaround.I have a Page Based Navigation interface with 3 pages (Custom Controller, Customer Controller, Now Playing Controller). The first page has buttons to control the workout (like the apple workout app). The second page is the state of the current workout. When a button is pressed on the first page (pause/resume/cancel), a notification is sent to the second page. The second page calls the becomeCurrentPage() method. This has always worked, but in watchOS 6 the willActivate() method on the second page is called, but the didAppear() method is not called. The second page is showing, but the page dots is still on the first page.
Posted
by jbailey.
Last updated
.