Watch Complications

RSS for tag

Display timely and relevant information about your app on the Apple Watch face using Complications.

Posts under Watch Complications tag

166 Posts

Post

Replies

Boosts

Views

Activity

Cannot purchase Developer License - Apple cancelling order
Hello, first I would just like to say I reside in America and have a US bank account / credit card. I know there are issues for people who do not reside in the US - however this is not the case with me. The first time purchasing, it went through. However the next day it was cancelled by Apple. I then tried again but it did not go through. I used another card - that went through - but again was cancelled the next day by Apple. I called Apple and they said my credit card was cancelling it. I called my credit card and purchased the license while on the phone with them. They stated that they did not cancel anything nor the previous purchases. After calling Apple back and talking to multiple departments they had no idea what to do with me. Finally after 4 hours they informed me that developer support did not have a phone number. I have emailed Developer support and am now awaiting a response. Has anyone else had this issue? Is there something I am missing here?
3
1
3.1k
Mar ’23
SwiftUI accessoryCorner complication gauge text labels get cut off
I have run into a problem with corner complications implemented with SwiftUI on watchOS 9, and so far the problem seems like a bug to me. I'm looking for ideas to solve this problem or any info about it, if someone else has run into the same issue. If I create a complication with SwiftUI with the .accessoryCircular family and add a widgetLabel with Gauge element, the gauge has an option to add minimum and maximum value labels to both ends of the gauge. These labels are added with minimumValueLabel and maximumValueLabel, respectively. However, on some Apple Watch models, such as Apple Watch Ultra and Apple Watch Series 7 45 mm, the text labels are cut off and clipped outside of the view, even if the label is only two characters long. The space reserved for the label text is minimal, and the gauge pushes the text labels outside of this space. Mock implementation of the corner complication content to replicate the issue: ... Image("moon").resizable().frame(width: 30, height: 30).widgetLabel {       Gauge(value: 25, in: 25...30) {         Text("Example")       } currentValueLabel: {         Text("Example")       } minimumValueLabel: {         Text("20").foregroundColor(.red)       } maximumValueLabel: {         Text("30").foregroundColor(.green)       }.tint(.blue)     } ... Trying to set a font size or weight to the gauge labels has no effect. This issue persist in the latest Xcode & watchOS version at the time of writing, 14.1 and 9.1. In this example image the label "86" is clipped. Sometimes both of the labels get cut off, sometimes only one.
3
0
2.4k
Mar ’23
Can't pin down how to show complications properly at different stages
I understand that complications in WidgetKit and watchOS 9 are different to the old ClockKit way, and I'm trying to populate the getSnapshot, getPlaceholder and getTimeline functions appropriately for the new method. I'm using dynamic intents, and I've got that working and providing a set of items I want the user to choose from, but at the various stages of selecting and adding a complication to the watch face, nothing I do seems to work properly on a device, and sometimes in the Simulator. On the Simulator: 1: The previews all use the same data, but getSnapshot() is supposed to return the data specific to that event from the configuration, i.e. if let theId = configuration.event?.identifier. "Christmas" is correct, but "Gallery Opening" is using Christmas's data. Are you only supposed to show ONE particular bit of data, like some dummy preview data or something? I can do that, but the complication picker then just looks really boring, with just the text below being different. I note that Apple's weather complications show different data. How did they do that? 2: You can see that once I pick an event it's displayed correctly in the Watch face edit screen: The "72d" circular complication is the "New York" event, and the rectangular one is correctly using the data for the "London Party!". 3: Once I've selected the events I want to use in those complications the edit screen shows them as totally blank, not even a placeholder. Which method gives us that preview? 4: Once I confirm the edits and return to the Watch face, the complications appear correctly: Note: This is all from the Simulator (apart from the image of Apple's Weather complications). This stuff barely works on a device. Half the time the complications are all placeholders, and half the time they're using the wrong data! If it works in the Simulator, it should work on the phone, or there is no point in giving us the Simulator if the results are different. So basically: Q1. How do I use different data in the complications picker? Q2. How do you get the previews to show when you're in edit mode? Q3. Does anyone know how to get print() statements to work when I'm running the Complications scheme? I could answer all these questions myself if I could output some debug info to the console, but all I see is the output from the Watch App target...
11
2
4.4k
Mar ’23
Need help adding a complication to an existing watchOS app
I have an existing watchOS app. It's deployment target is 6.1. I added a new widget extension by going to File -> New -> Target -> Widget Extension. I did NOT check the "Include Configuration Intent". In the "Embed in" drop down I chose the WatchKit Extension (it was the only one available). I did not change any of the generated code, other than to add @available(watchOS 9.0, *) to the structs. I attempted to preview the widget in the "preview canvas" but I got the following error: The app extension "MyProject ComplicationExtension.appex" needs to be embedded in an app in order to use previews I then checked the "MyProject WatchKit Extension" under the Target Membership in the File Inspector. The Preview Canvas then crashed with the following error: Couldn't retrieve XPCService dictionary from service bundle. ---------------------------------------- CrashReportError: MyProject WatchKit Extension crashed MyProject WatchKit Extension crashed. Check ~/Library/Logs/DiagnosticReports for crash logs from your application. Process: MyProject WatchKit Extension[7194] Date/Time: 2023-02-25 01:10:25 +0000 Log File: <none> Application Specific Information:     libxpc.dylib [         Configuration error: Couldn't retrieve XPCService dictionary from service bundle.     ]     libsystem_sim_platform.dylib [ CoreSimulator 857.14 - Device: Apple Watch Series 8 (45mm) (9D9982CB-5C86-4A90-913E-44C50CD846B1) - Runtime: watchOS 9.0 (20R362) - DeviceType: Apple Watch Series 8 (45mm) ] <snipped rest of crash report> I don't know what to try from here. Any ideas appreciated. Thank you!
0
0
845
Feb ’23
Complications in WidgetKit .accessoryCorner does not support previous functionality ClockKit
For almost a year now, it has been impossible to switch to a new tool, due to the lack of functionality of the old version. I mean the lack of the ability to create a normal angular layout (when there is a view progress, and an inscription is curved above it). Maybe I'm doing something wrong, but I didn't manage to create something similar to a standard complication. Please provide an example of how standard complications of this type were implemented and how to make it use SwiftUI.
0
0
1.5k
Feb ’23
Is it possible to disable Widget Accenting on the Lock Screen?
I'd like an Image subview of a lock screen widget to render as itself, and not with the multiply-like effect it gets today. I've tried .widgetAccentable(true) and .widgetAccentable(false), but none have the appearance I'm looking for. Is there maybe a new modifier that lets me "force" the rendering mode? Hoping there is and it's just not jumping out at me. Thanks for your help.
2
3
2.4k
Jan ’23
Watch Complication not Updating with WidgedKit in Background
Hallo, I wrote an Watch-Complication with Widgetkit an it only updates every 5 minutes (or so) if in background (AlwaysOn_display with dimmed screen). Even if there is a new timeline event, it will not immediately displayed. With Clockkit/WatchKit I never had this problem. If a new timeline entry became active the display gets updated, even if it was dimmed. Is there a solution with WidgetKit? Thanks
0
0
767
Jan ’23
Working example of Complications with WatchKit and WatchOS 9
Hello, where can I find a working example of Complications with WatchKit and WatchOS 9? So, no ClockKit... I try the sample code from Apple: https://developer.apple.com/documentation/widgetkit/adding_widgets_to_the_lock_screen_and_watch_faces But even with this, there are no complications shown on the Watch or Widgets on the LockScreen. They simple do not show up in the selection :( Where can I find something, that is working? Thanks, Stefan
0
1
1.4k
Jan ’23
How to Edit Complication name in Watch app of iPhone?
I am trying to create a WidgetKit based complication for watchOS 9 on XCode 14. Everything works fine but the Complication name in the Watch app of the iPhone shows COMPLICATION_TYPE_EDIT_LABEL_(NULL)_COMPANION How do I change it to display my app's name? Steps to reproduce : Create a new project on Xcode 14 -> Add new Watch App Target -> Add new Widget Extension target for watchOS.
4
1
2.5k
Jan ’23
Apple Watch not showing incoming carrier name
Hi, When I receive calls on my iPhone with DUAL SIM a little badge (in my case "P" for private and "B" for business) is shown that tells me which cellular line is called. Until WatchOS 9 this badge was shown on the Apple Watch as well... Since my upgrade on WatchOS 9 (and even with my upgrade to the Series 8) this badge is not shown. The Apple Watch Guide says the following: How Apple Watch receives calls when using multiple cellular plans When Apple Watch is connected to your iPhone: You can receive calls from both lines. Your watch shows a badge that tells you which cellular line you received a notification from—H for Home, and W for Work, for example. If you respond to a call, your watch automatically responds from the line that received the call. I already reset my Apple Watch and set it up as a new watch. I resetted my phone settings as well but nothing changed
1
0
1k
Jan ’23
Does anyone implement getAlwaysOnTemplate in their App for Apple Watch Complications on the Always-On Display
I supported the Always-On display in my app complications from day one but since am continuing to find animation glitches and bugs that have never been fixed and exist currently on WatchOS 8 & 9 (I've tried Series 6 & 8 devices). I'm thinking about scrapping it and just returning the handler(nil). Does anyone have an example of where they use it and it really adds value to their app complications? And do they have any suggestions to try and work around the glitches? Thanks
0
0
1.8k
Jan ’23
All Complications with the same name
I made some complications for the Apple Watch. I uses Intents for this complications. This code is used to add the complications: func provideVehicleItemOptionsCollection(for intent: ConfigurationIntent, with completion: @escaping (INObjectCollection<VehicleItem>?, Error?) -> Void) {         let vehicleStatusList = VehicleStatus.loadVehicleStatusList()         var list: [VehicleItem] = []         for item in vehicleStatusList {             list.append(VehicleItem(identifier: item.id, display: item.name ?? "No Name"))         }         let collection = INObjectCollection(items: list)         completion(collection, nil)     } But with this all complications show the same name. On the Apple Watch they show an icon in addition to this name, but also with is sometimes not working. How can I change the Title of the complications?
1
0
1.5k
Dec ’22
Are old (CLKComplicationDataSource-based) complications still supported in new extensionless Watch targets?
Hello, I am migrating a watch app from older dual watch-app/watch-extension targets to a new extensionless target, but my complications seem to have lost the ability to update. I have set the CLKComplicationPrincipalClass key in Info.plist to my ComplicationController class (class ComplicationController: NSObject, CLKComplicationDataSource), but while the previews inside the complication picker show up correctly, the complications themselves stopped working on the watchface. Namely, they don't redraw anymore, when I refresh them like this: let complicationServer = CLKComplicationServer.sharedInstance() if let activeComplications = complicationServer.activeComplications { for complication in activeComplications { complicationServer.reloadTimeline(for: complication) } } Is there something I am missing? Some way of registering the CLKComplicationDataSource instance in SwiftUI watch app definition? Or is this not supported, and the only way forward is to rewrite all ClockKit complications to WidgetKit ones?
4
0
2.9k
Nov ’22
Cannot purchase Developer License - Apple cancelling order
Hello, first I would just like to say I reside in America and have a US bank account / credit card. I know there are issues for people who do not reside in the US - however this is not the case with me. The first time purchasing, it went through. However the next day it was cancelled by Apple. I then tried again but it did not go through. I used another card - that went through - but again was cancelled the next day by Apple. I called Apple and they said my credit card was cancelling it. I called my credit card and purchased the license while on the phone with them. They stated that they did not cancel anything nor the previous purchases. After calling Apple back and talking to multiple departments they had no idea what to do with me. Finally after 4 hours they informed me that developer support did not have a phone number. I have emailed Developer support and am now awaiting a response. Has anyone else had this issue? Is there something I am missing here?
Replies
3
Boosts
1
Views
3.1k
Activity
Mar ’23
SwiftUI accessoryCorner complication gauge text labels get cut off
I have run into a problem with corner complications implemented with SwiftUI on watchOS 9, and so far the problem seems like a bug to me. I'm looking for ideas to solve this problem or any info about it, if someone else has run into the same issue. If I create a complication with SwiftUI with the .accessoryCircular family and add a widgetLabel with Gauge element, the gauge has an option to add minimum and maximum value labels to both ends of the gauge. These labels are added with minimumValueLabel and maximumValueLabel, respectively. However, on some Apple Watch models, such as Apple Watch Ultra and Apple Watch Series 7 45 mm, the text labels are cut off and clipped outside of the view, even if the label is only two characters long. The space reserved for the label text is minimal, and the gauge pushes the text labels outside of this space. Mock implementation of the corner complication content to replicate the issue: ... Image("moon").resizable().frame(width: 30, height: 30).widgetLabel {       Gauge(value: 25, in: 25...30) {         Text("Example")       } currentValueLabel: {         Text("Example")       } minimumValueLabel: {         Text("20").foregroundColor(.red)       } maximumValueLabel: {         Text("30").foregroundColor(.green)       }.tint(.blue)     } ... Trying to set a font size or weight to the gauge labels has no effect. This issue persist in the latest Xcode & watchOS version at the time of writing, 14.1 and 9.1. In this example image the label "86" is clipped. Sometimes both of the labels get cut off, sometimes only one.
Replies
3
Boosts
0
Views
2.4k
Activity
Mar ’23
Can't pin down how to show complications properly at different stages
I understand that complications in WidgetKit and watchOS 9 are different to the old ClockKit way, and I'm trying to populate the getSnapshot, getPlaceholder and getTimeline functions appropriately for the new method. I'm using dynamic intents, and I've got that working and providing a set of items I want the user to choose from, but at the various stages of selecting and adding a complication to the watch face, nothing I do seems to work properly on a device, and sometimes in the Simulator. On the Simulator: 1: The previews all use the same data, but getSnapshot() is supposed to return the data specific to that event from the configuration, i.e. if let theId = configuration.event?.identifier. "Christmas" is correct, but "Gallery Opening" is using Christmas's data. Are you only supposed to show ONE particular bit of data, like some dummy preview data or something? I can do that, but the complication picker then just looks really boring, with just the text below being different. I note that Apple's weather complications show different data. How did they do that? 2: You can see that once I pick an event it's displayed correctly in the Watch face edit screen: The "72d" circular complication is the "New York" event, and the rectangular one is correctly using the data for the "London Party!". 3: Once I've selected the events I want to use in those complications the edit screen shows them as totally blank, not even a placeholder. Which method gives us that preview? 4: Once I confirm the edits and return to the Watch face, the complications appear correctly: Note: This is all from the Simulator (apart from the image of Apple's Weather complications). This stuff barely works on a device. Half the time the complications are all placeholders, and half the time they're using the wrong data! If it works in the Simulator, it should work on the phone, or there is no point in giving us the Simulator if the results are different. So basically: Q1. How do I use different data in the complications picker? Q2. How do you get the previews to show when you're in edit mode? Q3. Does anyone know how to get print() statements to work when I'm running the Complications scheme? I could answer all these questions myself if I could output some debug info to the console, but all I see is the output from the Watch App target...
Replies
11
Boosts
2
Views
4.4k
Activity
Mar ’23
Need help adding a complication to an existing watchOS app
I have an existing watchOS app. It's deployment target is 6.1. I added a new widget extension by going to File -> New -> Target -> Widget Extension. I did NOT check the "Include Configuration Intent". In the "Embed in" drop down I chose the WatchKit Extension (it was the only one available). I did not change any of the generated code, other than to add @available(watchOS 9.0, *) to the structs. I attempted to preview the widget in the "preview canvas" but I got the following error: The app extension "MyProject ComplicationExtension.appex" needs to be embedded in an app in order to use previews I then checked the "MyProject WatchKit Extension" under the Target Membership in the File Inspector. The Preview Canvas then crashed with the following error: Couldn't retrieve XPCService dictionary from service bundle. ---------------------------------------- CrashReportError: MyProject WatchKit Extension crashed MyProject WatchKit Extension crashed. Check ~/Library/Logs/DiagnosticReports for crash logs from your application. Process: MyProject WatchKit Extension[7194] Date/Time: 2023-02-25 01:10:25 +0000 Log File: <none> Application Specific Information:     libxpc.dylib [         Configuration error: Couldn't retrieve XPCService dictionary from service bundle.     ]     libsystem_sim_platform.dylib [ CoreSimulator 857.14 - Device: Apple Watch Series 8 (45mm) (9D9982CB-5C86-4A90-913E-44C50CD846B1) - Runtime: watchOS 9.0 (20R362) - DeviceType: Apple Watch Series 8 (45mm) ] <snipped rest of crash report> I don't know what to try from here. Any ideas appreciated. Thank you!
Replies
0
Boosts
0
Views
845
Activity
Feb ’23
Complications in WidgetKit .accessoryCorner does not support previous functionality ClockKit
For almost a year now, it has been impossible to switch to a new tool, due to the lack of functionality of the old version. I mean the lack of the ability to create a normal angular layout (when there is a view progress, and an inscription is curved above it). Maybe I'm doing something wrong, but I didn't manage to create something similar to a standard complication. Please provide an example of how standard complications of this type were implemented and how to make it use SwiftUI.
Replies
0
Boosts
0
Views
1.5k
Activity
Feb ’23
Is it possible to disable Widget Accenting on the Lock Screen?
I'd like an Image subview of a lock screen widget to render as itself, and not with the multiply-like effect it gets today. I've tried .widgetAccentable(true) and .widgetAccentable(false), but none have the appearance I'm looking for. Is there maybe a new modifier that lets me "force" the rendering mode? Hoping there is and it's just not jumping out at me. Thanks for your help.
Replies
2
Boosts
3
Views
2.4k
Activity
Jan ’23
Watch Complication not Updating with WidgedKit in Background
Hallo, I wrote an Watch-Complication with Widgetkit an it only updates every 5 minutes (or so) if in background (AlwaysOn_display with dimmed screen). Even if there is a new timeline event, it will not immediately displayed. With Clockkit/WatchKit I never had this problem. If a new timeline entry became active the display gets updated, even if it was dimmed. Is there a solution with WidgetKit? Thanks
Replies
0
Boosts
0
Views
767
Activity
Jan ’23
Working example of Complications with WatchKit and WatchOS 9
Hello, where can I find a working example of Complications with WatchKit and WatchOS 9? So, no ClockKit... I try the sample code from Apple: https://developer.apple.com/documentation/widgetkit/adding_widgets_to_the_lock_screen_and_watch_faces But even with this, there are no complications shown on the Watch or Widgets on the LockScreen. They simple do not show up in the selection :( Where can I find something, that is working? Thanks, Stefan
Replies
0
Boosts
1
Views
1.4k
Activity
Jan ’23
How to Edit Complication name in Watch app of iPhone?
I am trying to create a WidgetKit based complication for watchOS 9 on XCode 14. Everything works fine but the Complication name in the Watch app of the iPhone shows COMPLICATION_TYPE_EDIT_LABEL_(NULL)_COMPANION How do I change it to display my app's name? Steps to reproduce : Create a new project on Xcode 14 -> Add new Watch App Target -> Add new Widget Extension target for watchOS.
Replies
4
Boosts
1
Views
2.5k
Activity
Jan ’23
Apple Watch not showing incoming carrier name
Hi, When I receive calls on my iPhone with DUAL SIM a little badge (in my case "P" for private and "B" for business) is shown that tells me which cellular line is called. Until WatchOS 9 this badge was shown on the Apple Watch as well... Since my upgrade on WatchOS 9 (and even with my upgrade to the Series 8) this badge is not shown. The Apple Watch Guide says the following: How Apple Watch receives calls when using multiple cellular plans When Apple Watch is connected to your iPhone: You can receive calls from both lines. Your watch shows a badge that tells you which cellular line you received a notification from—H for Home, and W for Work, for example. If you respond to a call, your watch automatically responds from the line that received the call. I already reset my Apple Watch and set it up as a new watch. I resetted my phone settings as well but nothing changed
Replies
1
Boosts
0
Views
1k
Activity
Jan ’23
Does anyone implement getAlwaysOnTemplate in their App for Apple Watch Complications on the Always-On Display
I supported the Always-On display in my app complications from day one but since am continuing to find animation glitches and bugs that have never been fixed and exist currently on WatchOS 8 & 9 (I've tried Series 6 & 8 devices). I'm thinking about scrapping it and just returning the handler(nil). Does anyone have an example of where they use it and it really adds value to their app complications? And do they have any suggestions to try and work around the glitches? Thanks
Replies
0
Boosts
0
Views
1.8k
Activity
Jan ’23
All Complications with the same name
I made some complications for the Apple Watch. I uses Intents for this complications. This code is used to add the complications: func provideVehicleItemOptionsCollection(for intent: ConfigurationIntent, with completion: @escaping (INObjectCollection<VehicleItem>?, Error?) -> Void) {         let vehicleStatusList = VehicleStatus.loadVehicleStatusList()         var list: [VehicleItem] = []         for item in vehicleStatusList {             list.append(VehicleItem(identifier: item.id, display: item.name ?? "No Name"))         }         let collection = INObjectCollection(items: list)         completion(collection, nil)     } But with this all complications show the same name. On the Apple Watch they show an icon in addition to this name, but also with is sometimes not working. How can I change the Title of the complications?
Replies
1
Boosts
0
Views
1.5k
Activity
Dec ’22
Are old (CLKComplicationDataSource-based) complications still supported in new extensionless Watch targets?
Hello, I am migrating a watch app from older dual watch-app/watch-extension targets to a new extensionless target, but my complications seem to have lost the ability to update. I have set the CLKComplicationPrincipalClass key in Info.plist to my ComplicationController class (class ComplicationController: NSObject, CLKComplicationDataSource), but while the previews inside the complication picker show up correctly, the complications themselves stopped working on the watchface. Namely, they don't redraw anymore, when I refresh them like this: let complicationServer = CLKComplicationServer.sharedInstance() if let activeComplications = complicationServer.activeComplications { for complication in activeComplications { complicationServer.reloadTimeline(for: complication) } } Is there something I am missing? Some way of registering the CLKComplicationDataSource instance in SwiftUI watch app definition? Or is this not supported, and the only way forward is to rewrite all ClockKit complications to WidgetKit ones?
Replies
4
Boosts
0
Views
2.9k
Activity
Nov ’22