ActivityKit pushTokenUpdates device support

I'm building a live activity with push token updates for my app as described in the documentation and implemented in the EmojiRangers example. The workflow is working fine for fairly new devices (iPhone > 13) - however, the asynchronous pushTokenUpdates sequence used to observe changes to the push token of a Live Activity is not getting triggered on some older devices (i.e. iPhone XR, iPad 8th Generation).

Is there a minimum device version for this sequence?

This is the code I'm using:

"--------Task--------" gets printed,

"--------PushTokenUpdate--------" does not (on older devices):

do {
    let activity = try Activity.request(
        attributes: matchAttributes,
        content: .init(state: initialContentState, staleDate: nil),
        pushType: .token
    )
    
    Task {
        print("--------Task--------")
        for await pushToken in activity.pushTokenUpdates {
            print("--------PushTokenUpdate--------")
        }
    }
} catch {
    Logger().error("Error starting LiveActivity: \(String(describing: error))")
}

Replies

I figured it out! After some further debugging I found that even when omitting the pushType the activity still wouldn't start on "older" devices. Then I stumbled across this sentence in the documentation of Activity.request(attributes:content:pushType:): "If your Live Activity displays image assets, the system requires them to use a resolution that’s smaller or equal to the size of the Live Activity presentation for a device. If you use an image asset that’s larger than the size of the Live Activity presentation, the system may fail to start the Live Activity. For information about the sizes of Live Activity presentations, see Human Interface Guidelines > Live Activities."

So it turns out the problem was that I'm using 500x500 image assets in my Live Activities - which is just inside the range for iPhones 12 and up, but too large for iPhones older than that.