I just updated my app for the always-on screen and watchOS 8. I mainly used the simulator while testing, but when I tested the app on the device the always-on screen behavior the same as for watchOS 7.
When I updated my minimum deployment target to watchOS 8 the always-on screen was working.
Is this feature not backwards compatible at all? Does it require the app to be compiled for watchOS 8 or is there any option to support watchOS 6 & 7 as well?
I used Xcode 13 RC for testing this.
In the article Designing Your App for the Always On State it states:
Apps compiled for watchOS 8 and later have Always On enabled by default. You can disable this feature by setting the WKSupportsAlwaysOnDisplay key to false in the WatchKit Extension’s Info.plist file. Users can also disable Always On for the entire device or on a per-app basis by choosing Settings > Display & Brightness > Always On.
It could be interpreted as: It needs watchOS 8 as a deployment target and in it works when you use Xcode 13 with the watchOS 8 toolchain
I did a bunch of testing, like setting the target back to watchOS 7 and 6 and it still worked. Then I deleted and completely reinstalled the app with watchOS 6 as a deployment target and it kept working.
So I guess that the main issue here might be an issue during an update. So that after an update the watch does not recognize that the app is always-on capable, but after reinstallation it does so. Hopefully the same issue does not occur with App Store updates