Post

Replies

Boosts

Views

Activity

Xcode 12.5 WatchOS simulator updateApplicationContext() is broken
Hi, Xcode 12.5's iPhone simulator silently fails in sending its app context via updateApplicationContext() to the Watch simulator. No exception is thrown, so it appears as if everything is ok - but not really because the WatchOS simulator never gets the app context This works fine on real devices as well as earlier versions of Xcode. Doing a updateApplicationContext() from the WatchOS simulator to the paired iPhone simulator does work. I filed a bug report for this issue, because this behavior has been in Xcode 12.5 since the beta version: FB9095737 (Xcode 12.5 WatchOS Simulator never receives application context from iPhone counterpart) Before anyone says "why not debug on a real device instead?", please be aware that due to the pandemic, while I do test on real devices, I can only debug on a simulator. Thanks
17
0
5.5k
May ’21
WatchOS 7.4 beta extremely slow/failing willPerformHTTPRedirection
Our WatchOS app requires that http redirects work in a reasonably timely manner, and it has been the case until WatchOS 7.4 beta. Now in WatchOS 7.4 beta they take such a long time that the application simply hangs with no errors being returned back to the app. We've looked at the release notes for WatchOS 7.4 beta and there's nothing in there about slow HTTP redirects. Has anyone experienced this issue with the latest 7.4 beta? Is this a known issue? Thanks
4
0
1.4k
Mar ’21
WatchOS 7.4 Beta : Simulator synced. UpdateApplicationContext() not working
Greetings fellow WatchOS app developers, On the iOS simulator running 12.5 beta, the method updateApplicationContext() claims that it succeeded, no exception is thrown and yet the WatchOS app, running on a WatchOS 7.4 simulator never gets its language session(_ session: WCSession, didReceiveApplicationContext applicationContext: [String : Any]) method invoked. Same issue in the other direction: The WatchOs app claims success on updating the iPhone app's application context. Yet nothing arrives. This works fine on real devices running iOS 14.5 beta and WatchOS 7.4 beta. Are there any workarounds? Due to Covid-19, I'm working remotely and can't debug on a real device, and need to be able to debug a critical WatchOS 7.4 specific issue. Thanks in advance!
8
0
3k
Mar ’21
Does WatchOS 7 have a limit on the total number of complications per app?
Greetings, Our WatchOS 7 app offers the user a complication for each of the items in the app. So if the app currently has only 5 items, we have 5 complications for each complication family type, if the user has 8 items we have 8 unique complications for each complication family and so on. This is incredibly useful, because we can now have multiple items on an active watch face. We've noticed that if we have more than 10 items only the first 10 register in the getComplicationDescriptors() call. The rest are not visible to the user and as a result cannot be selected. However, we've noticed that Apple's World Clock app, which shows the time for different cities has no limit. i.e. if the clock app has 18 cities in it, the user can pick from 18 complications for each complication family . When will we be able to offer more than 10 complications? Thank you
3
0
1.1k
Nov ’20
Issues after installing sysdiagnose profile on watch and viewing watch console output
I'm having intermittent issues viewing WatchOS console output. Installing the sysdiagnose profile works some of the time. Here's everything I've tried: Installing sysdiagnose on Apple Watch Installing sysdiagnose on Apple Watch and then restarting the watch Restarting the Apple Watch and then installing sysdiagnose profile Restarting the Apple Watch and then installing sysdiagnose profile and then restarting the watch Removing the current sysdiagnose profile, restarting the watch, installing the sysdiagnose profile Removing the current sysdiagnose profile, restarting the watch, installing the sysdiagnose profile and then restarting the Watch. I really need to view the watch's console output on my Mac console, and using the sysdiagnose profile only works some of the time. Why is this so hard to do? And another thing: is installing the sysdiagnose profile really needed for logging? The instructions state that it's for creating a file to send to Apple, but I don't need to do that. I just need console output. I guess I'll try restarting my iPhone and my Mac next. Thanks
0
0
606
Oct ’20
WatchOS Is it possible to programmatically dismiss a detail screen segue from a vertical page navigation
Greetings, anyone know the answer to this question? Need to switch segue when going to my app from a complication for item x and need to bring up the detail screen for x. First I'd need to detect if I'm currently in a segue, and if so then I need to pop out if it's not the detail screen segue for item x. This would be for the case where complications are active for more than one item are active on the watch face simultaneously. Thanks!
1
0
674
Oct ’20
WatchOS 7 UX Question Vertical page navigation and supporting multiple item complications
WatchOS 7 supports having complications which can show different items simultaneously. For example a weather app that has multiple cities can show complications for weather in New York City, San Francisco and Boston either all on the same watch face or multiple. This is great! Following the "last selected item in the app becomes the item for complication" strategy taken in the Apple Stocks app no longer applies here. The Stocks app has not been updated to show multiple complications where each complication can show a different stock. Now, let's say that I'm working on a Stocks like app. If I were to leave out the last selected item strategy then what should happen when the user taps on a complication for a given stock? If the strategy becomes "that's easy - simply do a segue using performSegue() to the detail screen for that stock" there's an issue. The app may already be in a segue for some other stock. There is no public API for dismissing a segue programatically. So what should one do? I'm hesitant to remove the vertical page navigation, since it works so well. This is further complicated by the issue that in addition to unique complications per stock, I also want to keep the "last selected item in the app becomes the item for complication" paradigm. Picture this: If a user taps on a complication setup for the last selected item in app, then upon tapping on that complication I'd like to do a segue to the appropriate detail screen. If a user taps on a complication setup for a specific item, then upon tapping on it I'd like to do a segue to that item. But then this will cause the last selected item to be modified. I can live with that. All suggestions are welcome. Thanks in advance
1
0
727
Oct ’20
Cannot start debug session on Watch simulator using Xcode 12 (12A7209)
Trying to port existing iPhone and Watch apps to iOS 14/WatchOS 7, and while there are no issues debugging the iPhone app, I cannot initiate a debugging session on the Watch simulator. Xcode stays stuck with this message in the debug pane: <My WatchOS app name> Waiting to attach Does anyone know why this is failing with a fresh install of Xcode 12? I'm on Catalina - 10.15.6. Unfortunately because of the pandemic, I cannot debug on a real device - only the simulator, so this is a major issue. Any suggestions would be highly appreciated. Thanks
2
0
1.2k
Sep ’20
WatchOS: Modular small complication issue. Apple's Calculator and Activity complication have 3 colors. How?
The title says it all. How to display a 3 color image in a modular small complication? All the modular small complication template take a CLKImageProvider which can at most have 2 colors. And yet, Apple's calculator and activity complications have 3 colors in addition to a clear background. How is that done? Thanks
0
0
570
Aug ’20
Complication stops updating when Apple Watch is on the charger
Greetings all, I have an interesting problem. When the user wears the watch, my app's complication updates approximately every 15 minutes. Although it is not a standalone app, it only uses the iPhone app to do a one time initialization. After that, all network access for data is done by my WatchOS app. Same with the complication. That's great. But when my watch is on the charger my app stops updating. First the app is killed by WatchOS after an unknown amount of time. Then it is loaded in memory, but never updates the complication. When I tap on my complication the app starts and it's obvious that it is loaded in memory because it starts so fast. If the watch gets an overnight WatchOS update and then the watch reboots itself, it is not even loaded into memory. Meanwhile Apple's Stock app is updated properly even after the watch rebooted and is still on the doc. I've gone though and reviewed all of my code, ensured the any files that are accessed while the watch is locked don't have file protection enabled, and yet no luck. Is background refresh really the way to do this or should I scrap that and use complication notifications instead?
4
0
1.2k
Aug ’20
WatchOS: background refresh file is downloaded but didFinishDownloadingTo: never called...
Greetings, I've implemented background refresh in my WatchOS app, its purpose is to get some data (always less than 400 bytes) from the server at a minimum of every 15 minutes and update the complication. Sounds pretty straight forward and it's like clockwork - works really well when I'm debugging the WatchOS app in Xcode or started by launching it manually. The problem begins if I do something to force the system to kill the app by simply swiping through all the watch faces, or loading other apps. This is a highly realistic scenario. At this point I switch to observing what is happening on the watch by viewing the console output: WatchOS launches my app in the background and my extension's handle() method is called This in turn invokes my code which creates a properly crafted URLRequest which is then passed to a background URLSession's download task. The very small (<400 bytes) file is downloaded. This works every time, regardless of how the app is launched. My URLSessionDownloadDelegate's urlSession(_ downloadTask:didFinishDownloadingTo:) method is NOT called, even though the file has been downloaded successfully! Even stranger, the delegate method IS then called only if I then tap on my complication which launches the app. Please tell me that this is not how the intended functionality is supposed to work. How am I supposed to update the complication in the background if the only time I can process the downloaded data is if the user starts the app? I was under the (hopefully not mistaken) impression that if I have my app's complication on the Watch face I would be able to process the result and update the complication data in the background. Is that a wrong impression? If I am mistaken, then the complication cannot be updated 4 times per hour, and what is the point then of downloading the data in the background if the user then has to tap on the stale complication? Thanks in advance, Sal
19
0
4.9k
Jul ’20