Xcode’s Apple TV Simulators

Here’s a quick warning to tvOS devs: always test on a physical AppleTV. Xcode’s tvOS simulators are not always up to date.

In September 2019 tvOS 13.0 was released for Apple TV. It came with changes to the UINavigationController tabBar. In tvOS 12, the tabBar appears on a layover that crosses the top of the screen:

Simulator view of tvOS 12.x

For tvOS 13.0, the navigation tabBar was changed to float over the existing screen:

Simulator view of tvOS 13.0

The UI change to this component created some UX issues, making it difficult for some controls to gain focus. Fortunately, this component was reverted back to its previous look and feel in October 2019 with the release of tvOS 13.2.

Unfortunately, Xcode doesn’t make this easy to test. When deploying directly to a tvOS 13.2 device, Xcode 11.1 warns “Could not locate device support files” and encourages developers to download the latest version, despite Xcode being on the latest version.

This Apple TV (4th generation) is running tvOS 13.2 (17K82), which may not be supported by this version of Xcode. An updated version of Xcode may be found on the App Store or at developer.apple.com.

Thanks, Apple

The issue can be worked-around by publishing a build to TestFlight and downloading it onto the Apple TV. While cumbersome, I encourage all tvOS devs to use an up-to-date physical device while testing their app. Xcode’s Simulators simply can’t be trusted to stay up-to-date.

Bonus tip: installing newer version of tvOS may not be possible, but older versions can still be simulated. Go to Window -> Devices and Simulators and make sure to download the tvOS (not iOS) version you’re looking for.

Leave a Reply

Your email address will not be published.