PlayParameters in iOS 16 breaks backwards compatibility with iOS 15

Hi Apple Engineers,

I noticed in iOS 16, PlayParameters which part of every Track that has been added/downloaded to the library, now includes two new properties isLibrary & musicKit_persistentID . Unfortunately, these create backward compatibility error when trying to decode the Track object on iOS 15.

I make collaborative playlist app, which stores the Track added by User A which now includes the unique identifier for the locally downloaded file, when attempted to be played by User B won't play any music due to mismatching identifiers (even when everyone is on iOS 16).

This essentially breaks the entire functionality of my app due to these new properties.

Steps:

  1. Store a Track (which has been added to library) as a JSON object from iOS 16
  2. Decode the JSON on iOS 15

Expected Results: New PlayParameters variables should be optional, to support backwards compatibility with iOS 15 and to support collaborative uses cases.

Actual Results: New PlayParameters automatically include two new values that cause decoding errors.

I request that at least for an option to ignore the new properties in the PlayParameters in iOS 16.

Here is my feedback: FB11362589

Answered by ashinthetray in 725221022

@JoeKun Hope you can looking into this issue. Thanks!

Accepted Answer

@JoeKun Hope you can looking into this issue. Thanks!

PlayParameters in iOS 16 breaks backwards compatibility with iOS 15
 
 
Q