Posts

Post not yet marked as solved
8 Replies
2.7k Views
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!
Posted Last updated
.
Post not yet marked as solved
17 Replies
4.9k Views
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
Posted Last updated
.
Post marked as solved
1 Replies
2k Views
In order to determine what is wrong with my simulators' behavior, Apple is asking me to run sysdiagnose on all devices involved. However, aside from my mac mini, all other devices involved this issue are simulators. Can one run sysdiagnose on a simulator for iOS and WatchOS? And if so how? Thanks in advance
Posted Last updated
.
Post marked as solved
4 Replies
1.3k Views
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
Posted Last updated
.
Post not yet marked as solved
3 Replies
964 Views
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
Posted Last updated
.
Post not yet marked as solved
0 Replies
538 Views
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
Posted Last updated
.
Post marked as solved
1 Replies
639 Views
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
Posted Last updated
.
Post marked as solved
1 Replies
585 Views
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!
Posted Last updated
.
Post marked as solved
4 Replies
992 Views
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?
Posted Last updated
.
Post marked as solved
19 Replies
4.3k Views
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
Posted Last updated
.
Post marked as solved
2 Replies
1k Views
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
Posted Last updated
.
Post not yet marked as solved
0 Replies
515 Views
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
Posted Last updated
.