Post

Replies

Boosts

Views

Activity

Reply to Migrate Widgets from StaticConfiguration to IntentConfiguration
For any unfortunate peoples stumbling across this, the issue was not solved in the RC builds of iOS & WatchOS 26. I'm shipping anyway and have had to build in a knowledge base in the app to help users with missing complications. 😞 Not the outcome I wanted and will undoubtedly lead to a lot of emails and negative reviews..... But I have users who expect the latest features so what else can I do.....
Sep ’25
Reply to `onTapGesture` not triggered on `Map` views
I'm also seeing this problem with Swift Charts. This is with the latest Xcode 26 Beta 6 and iOS 26 Beta 8. This issue doesn't affect devices running iOS 18 and 17 from my testing. As such I've made this modifier which may help someone, hopefully I can remove it in the release seed but who knows! extension View { func CustomTapGesture(tapCount:Int = 1, perform action: @escaping () -> Void ) -> some View { modifier(TapGestureModifier(tapCount: tapCount, action: action)) } } struct TapGestureModifier: ViewModifier { var tapCount:Int = 1 var action: (() -> Void) func body(content: Content) -> some View { if #available(iOS 26.0, *) { content.simultaneousGesture(TapGesture(count: tapCount).onEnded { action() }) } else { content.onTapGesture(count: tapCount) { action() } } } } Which can be used like this: Text("Hello World") .CustomTapGesture(tapCount:2) { UIImpactFeedbackGenerator().impactOccurred() } To be clear, this doesn't work as well for iOS 26 users as the standard .onTapGesture but it is a workaround.
Topic: UI Frameworks SubTopic: SwiftUI Tags:
Aug ’25
Reply to Guidance / Documentation on iOS 18.6.1 Blood Oxygen Saturation
Hi Ziqiao, Thank you for the response on this. All your first paragraph points sound good. Unfortunately I too don't have an affected device so short of importing one, I'm not sure on the exact behaviour. As for the measurements, yes any further details you can provide would be good including if the background measurements are still taken in the same way on these models and if data can be automatically synced back to iPhone and therefore the HealthKit database when the iPhone is available. Thank you
Aug ’25
Reply to Configurable Watch Widgets "Unable to Load" watchOS 26 Issue
Ok interesting. My intent code is unique for WatchOS and iOS because I have different parameters for the widget depending on platform. This also means having unique timeline code, one timeline provider per intent. My intent which is only targeted to my Watch app widget extension looks like this: struct WatchTrendWidgetIntent: WidgetConfigurationIntent { static var title: LocalizedStringResource = "Trend Widget Configuration" static var description = IntentDescription("Configure trend Health type Watch Widgets.") static var isDiscoverable: Bool { return false} init() {} func perform() async throws -> some IntentResult { return .result() } @Parameter(title: "Chart Health Type", default: TrendHealthTypeOption.restHR) var healthType: TrendHealthTypeOption? @Parameter(title: "Show Day's Date", default: false) var showDaysDate: Bool } I still need to test this on WatchOS 26 beta 4 but on beta 3 it worked.... In the timeline I do this: func recommendations() -> [AppIntentRecommendation<WatchTrendWidgetIntent>] { // Only used in WatchOS if #available(watchOS 26, *) { return []} else ........ } So hopefully this helps. One of the reasons I asked about if you have existing widgets was because of this problem here: https://developer.apple.com/forums/thread/788784 Was just wondering if this issue applied to you if you had existing Watch complication/widget users?
Topic: UI Frameworks SubTopic: SwiftUI Tags:
Jul ’25
Reply to Configurable Watch Widgets "Unable to Load" watchOS 26 Issue
May not be super helpful but for a reference point, I am not seeing this on WatchOS 26 beta 3. Although there's been the some glitches loading the intent configuration UI and it's also unreliable in the Apple Watch app Face Gallery, I just wanted to say this might be something in your setup. Maybe creating a new intent with a single BOOL parameter might be a good test, although that will also need a new IntentTimelineProvider. Are you planning on moving from StaticConfiguration to AppIntentConfiguration for your Apple Watch widget/complications?
Topic: UI Frameworks SubTopic: SwiftUI Tags:
Jul ’25
Reply to Custom Intent ParameterSummary based on Widget Kind/ID
Following some further work I think the accepted and recommended answer is actually not all that clear. From some further testing I've found that the following code works just fine in my WidgetConfigurationIntent for conditionally hiding parameters based on the widget family.... Should the statement "" actually be "Parameters cannot be conditionally hidden based on variables passed into the intent"? Thanks static var parameterSummary: some ParameterSummary { When(widgetFamily: .equalTo, .accessoryRectangular) { Summary("Test Info") { \.$hideAverageMarks \.$extendChart \.$showDaysDate } } otherwise : { Summary("Test Info") { \.$recentValueFormat } } }
Topic: UI Frameworks SubTopic: SwiftUI Tags:
Jun ’25
Reply to HealthKit returns different values depending on the OS the request is made on
I would just say this seems like a flawed approach for a HealthKit based app. I don't know many Watch apps which users operate whilst their iPhone is unlocked. If their iPhone isn't unlocked, there will be no access available to their HealthKit HealthStore on that device. If you can ask users on the Watch app to also unlock their iPhone - great. Otherwise I'd stick with what you have available on the Watch.
Jun ’25
Reply to Migrate Widgets from StaticConfiguration to IntentConfiguration
Yes, fingers crossed we get some direction or clarity from Apple here because after all these feedbacks, it's like it isn't considered an issue. I've since found an example of where on Apple Watch they seem to have solved this. The "Weather Details" widget/complication which I used in WatchOS 11 wasn't removed from my Watch face after the WatchOS 26 update. In WatchOS 11 it offers no configuration, in WatchOS 26 it does (screenshots here). Unless Apple just made all their Apple Watch widgets/complications AppIntentConfiguration instead of StaticConfiguration from the beginning, they must have had another way to migrate this whilst is persisted on my Watch face. 🤞
Jun ’25
Reply to Migrate Widgets from StaticConfiguration to IntentConfiguration
For any unfortunate peoples stumbling across this, the issue was not solved in the RC builds of iOS & WatchOS 26. I'm shipping anyway and have had to build in a knowledge base in the app to help users with missing complications. 😞 Not the outcome I wanted and will undoubtedly lead to a lot of emails and negative reviews..... But I have users who expect the latest features so what else can I do.....
Replies
Boosts
Views
Activity
Sep ’25
Reply to `onTapGesture` not triggered on `Map` views
I'm also seeing this problem with Swift Charts. This is with the latest Xcode 26 Beta 6 and iOS 26 Beta 8. This issue doesn't affect devices running iOS 18 and 17 from my testing. As such I've made this modifier which may help someone, hopefully I can remove it in the release seed but who knows! extension View { func CustomTapGesture(tapCount:Int = 1, perform action: @escaping () -> Void ) -> some View { modifier(TapGestureModifier(tapCount: tapCount, action: action)) } } struct TapGestureModifier: ViewModifier { var tapCount:Int = 1 var action: (() -> Void) func body(content: Content) -> some View { if #available(iOS 26.0, *) { content.simultaneousGesture(TapGesture(count: tapCount).onEnded { action() }) } else { content.onTapGesture(count: tapCount) { action() } } } } Which can be used like this: Text("Hello World") .CustomTapGesture(tapCount:2) { UIImpactFeedbackGenerator().impactOccurred() } To be clear, this doesn't work as well for iOS 26 users as the standard .onTapGesture but it is a workaround.
Topic: UI Frameworks SubTopic: SwiftUI Tags:
Replies
Boosts
Views
Activity
Aug ’25
Reply to Guidance / Documentation on iOS 18.6.1 Blood Oxygen Saturation
Hi Ziqiao, Thank you for the response on this. All your first paragraph points sound good. Unfortunately I too don't have an affected device so short of importing one, I'm not sure on the exact behaviour. As for the measurements, yes any further details you can provide would be good including if the background measurements are still taken in the same way on these models and if data can be automatically synced back to iPhone and therefore the HealthKit database when the iPhone is available. Thank you
Replies
Boosts
Views
Activity
Aug ’25
Reply to Xcode 26 Beta 5 HealthKit DLYD Symbol Crash
Fixed in Xcode 26 beta 6!
Replies
Boosts
Views
Activity
Aug ’25
Reply to Xcode 26 Beta 5 Universal: Not able to install iOS 26 Beta 5 simulator on intel macs
I'm having issues on my Intel Mac mini too
Replies
Boosts
Views
Activity
Aug ’25
Reply to iOS 26 navigationTransition .zoom issue
I've seen a similar issue, I'm hoping this is a bug which gets fixed, I've filed a feedback, suggest you do the same.
Topic: UI Frameworks SubTopic: SwiftUI Tags:
Replies
Boosts
Views
Activity
Aug ’25
Reply to Clarification on safeAreaBar
Now working for me on Beta 5 😀
Topic: UI Frameworks SubTopic: SwiftUI Tags:
Replies
Boosts
Views
Activity
Aug ’25
Reply to Clarification on safeAreaBar
Any update on this? Still not having any luck in Beta 4 getting this to work. I've also not seen it mentioned as fixed or as a known issue in the release notes....
Topic: UI Frameworks SubTopic: SwiftUI Tags:
Replies
Boosts
Views
Activity
Jul ’25
Reply to Configurable Watch Widgets "Unable to Load" watchOS 26 Issue
Ok interesting. My intent code is unique for WatchOS and iOS because I have different parameters for the widget depending on platform. This also means having unique timeline code, one timeline provider per intent. My intent which is only targeted to my Watch app widget extension looks like this: struct WatchTrendWidgetIntent: WidgetConfigurationIntent { static var title: LocalizedStringResource = "Trend Widget Configuration" static var description = IntentDescription("Configure trend Health type Watch Widgets.") static var isDiscoverable: Bool { return false} init() {} func perform() async throws -> some IntentResult { return .result() } @Parameter(title: "Chart Health Type", default: TrendHealthTypeOption.restHR) var healthType: TrendHealthTypeOption? @Parameter(title: "Show Day's Date", default: false) var showDaysDate: Bool } I still need to test this on WatchOS 26 beta 4 but on beta 3 it worked.... In the timeline I do this: func recommendations() -> [AppIntentRecommendation<WatchTrendWidgetIntent>] { // Only used in WatchOS if #available(watchOS 26, *) { return []} else ........ } So hopefully this helps. One of the reasons I asked about if you have existing widgets was because of this problem here: https://developer.apple.com/forums/thread/788784 Was just wondering if this issue applied to you if you had existing Watch complication/widget users?
Topic: UI Frameworks SubTopic: SwiftUI Tags:
Replies
Boosts
Views
Activity
Jul ’25
Reply to Apple HealthKit Integration - Need help with sleep data
How are you planning to correctly adjust for the "timing dynamics between days". Is there a recommended solution that accounts for users sleep patterns including those who work shifts? Don't forget to also de-duplicate the sleep data, third party apps can write additional sleep events potentially causing you to count more sleep that actually occurred!
Replies
Boosts
Views
Activity
Jul ’25
Reply to Configurable Watch Widgets "Unable to Load" watchOS 26 Issue
May not be super helpful but for a reference point, I am not seeing this on WatchOS 26 beta 3. Although there's been the some glitches loading the intent configuration UI and it's also unreliable in the Apple Watch app Face Gallery, I just wanted to say this might be something in your setup. Maybe creating a new intent with a single BOOL parameter might be a good test, although that will also need a new IntentTimelineProvider. Are you planning on moving from StaticConfiguration to AppIntentConfiguration for your Apple Watch widget/complications?
Topic: UI Frameworks SubTopic: SwiftUI Tags:
Replies
Boosts
Views
Activity
Jul ’25
Reply to Migrate Widgets from StaticConfiguration to IntentConfiguration
This issue remains and still seems like a glaring omission or that I must be missing something. I'll open a DTS as a last resort and report back if I get any useful details on migration strategies. If anyone else if having this issue please Boost the post! Thanks 🙏
Replies
Boosts
Views
Activity
Jul ’25
Reply to Custom Intent ParameterSummary based on Widget Kind/ID
Following some further work I think the accepted and recommended answer is actually not all that clear. From some further testing I've found that the following code works just fine in my WidgetConfigurationIntent for conditionally hiding parameters based on the widget family.... Should the statement "" actually be "Parameters cannot be conditionally hidden based on variables passed into the intent"? Thanks static var parameterSummary: some ParameterSummary { When(widgetFamily: .equalTo, .accessoryRectangular) { Summary("Test Info") { \.$hideAverageMarks \.$extendChart \.$showDaysDate } } otherwise : { Summary("Test Info") { \.$recentValueFormat } } }
Topic: UI Frameworks SubTopic: SwiftUI Tags:
Replies
Boosts
Views
Activity
Jun ’25
Reply to HealthKit returns different values depending on the OS the request is made on
I would just say this seems like a flawed approach for a HealthKit based app. I don't know many Watch apps which users operate whilst their iPhone is unlocked. If their iPhone isn't unlocked, there will be no access available to their HealthKit HealthStore on that device. If you can ask users on the Watch app to also unlock their iPhone - great. Otherwise I'd stick with what you have available on the Watch.
Replies
Boosts
Views
Activity
Jun ’25
Reply to Migrate Widgets from StaticConfiguration to IntentConfiguration
Yes, fingers crossed we get some direction or clarity from Apple here because after all these feedbacks, it's like it isn't considered an issue. I've since found an example of where on Apple Watch they seem to have solved this. The "Weather Details" widget/complication which I used in WatchOS 11 wasn't removed from my Watch face after the WatchOS 26 update. In WatchOS 11 it offers no configuration, in WatchOS 26 it does (screenshots here). Unless Apple just made all their Apple Watch widgets/complications AppIntentConfiguration instead of StaticConfiguration from the beginning, they must have had another way to migrate this whilst is persisted on my Watch face. 🤞
Replies
Boosts
Views
Activity
Jun ’25