iOS/tvOS use different application extensions depending on OS version

246 Views Asked by At

Is there a way to use different application extensions on different OS versions on iOS/tvOS?

My use case is that I want to use the new tvOS 13 top shelf extension but keep using the legacy top shelf extensions for devices running tvOS 12.

If I add a tvOS 13 top shelf extension target, I can set its deployment target to tvOS 13.0 and keep the deployment target of my app at tvOS 12.0.

But if I also keep my existing legacy top shelf extension embedded. The legacy extension will be used on all devices running tvOS 12 or 13. The tvOS 13 top shelf extension is never used.

1

There are 1 best solutions below

0
On

For a single app to support a top shelf extension in both tvOS 12.x and below and tvOS 13 and above, the app must have two extensions.

  • One for tvOS 12.x and below using the "com.apple.tv-services" extension point.
  • One for tvOS 13 and above using the "com.apple.tv-top-shelf" extension point.

tvOS will base itself on the extension point; tvOS 12.x and below only know about the first, and will ignore the latter. tvOS 13.0 and above look for the latter and ignore the first.