tvOS is the operating system for Apple TV.

Posts under tvOS tag

200 Posts

Post

Replies

Boosts

Views

Activity

Feature request: level metering for MusicKit playback (FB25234486)
Hi everyone, I'm building a tvOS app that shows analog VU meters for the music playing, in the style of vintage hi-fi amplifiers and tape decks. It works well with local and network files played through AVAudioEngine, where I can tap the signal and measure real levels. With Apple Music, though, there's no way to get even basic level information. The content is DRM-protected, SystemMusicPlayer and ApplicationMusicPlayer render audio outside the app's audio graph, and MusicKit has no metering API. My current workaround is to analyze the song's 30-second preview and replay its level envelope in a loop. It looks plausible, but it isn't in sync with the actual music. I filed FB25234486 asking for a read-only metering API on MusicPlayer, similar to what AVAudioPlayer already offers: let rms = musicPlayer.averagePower(forChannel: 0) // dBFS let peak = musicPlayer.peakPower(forChannel: 0) // dBFS This wouldn't expose any audio samples: just one RMS and one peak value per channel, at a low, capped rate (around 30 Hz). Those numbers can't be turned back into audio, so content protection wouldn't be weakened, and the values could be computed inside the system's playback process. It would make a number of use cases possible: VU and peak meters, audio-reactive visualizers, ambient lighting synced to the music (HomeKit, smart lights), loudness displays, and accessibility features such as visual feedback of the music for hard-of-hearing users. If you need this too, please file your own feedback and mention FB25234486. Duplicate reports help Apple gauge demand. And if anyone has found a supported way to get playback levels from MusicKit today, I'd love to hear about it. Thanks!
0
0
59
4d
MusicKit tvOS — Some personal library songs fail with Error Code 6, while others play successfully
Hi everyone, I’m developing a native Apple TV application using MusicKit for Swift. The app provides a custom interface for browsing and playing the user’s personal Apple Music library. The application was working correctly for several months, but recently certain songs from the user’s personal library have stopped playing. I’ve been investigating this issue extensively and have reproduced it in a completely separate, minimal tvOS test application. The issue I retrieve songs using MusicLibraryRequest() and play them using ApplicationMusicPlayer. Some songs play successfully, while others consistently fail during playback preparation with: `MPMusicPlayerControllerErrorDomain Code=6 "Prepare to play failed"` The underlying errors include : NSCocoaErrorDomain Code=4099 Example of a failing song Michael Jackson — Bad (2012 Remaster) Library song ID: i.ldDOAp0UrAa62J Successfully retrieved using MusicLibraryRequest() Fails when queued with ApplicationMusicPlayer Also fails with SystemMusicPlayer Example of a working song Harry Nilsson — Everybody’s Talkin’ (1971 Mix) Library song ID: i.WmYQp9PcdZ4Y0E Retrieved using the exact same MusicLibraryRequest() Successfully plays using ApplicationMusicPlayer Both songs have library identifiers beginning with i.. What I’ve tested ApplicationMusicPlayer with prepareToPlay() followed by play(). SystemMusicPlayer with the same library song. Direct play() without explicitly calling prepareToPlay(). Retrieving songs directly using MusicLibraryRequest(), rather than accessing them through albums. A completely separate minimal tvOS application. An older version of my application’s code, recompiled using the current Xcode version. The issue persists across these tests. Interestingly, the corresponding Apple Music catalog song plays successfully when retrieved through MusicCatalogSearchRequest. However, replacing library songs with catalog equivalents is not an acceptable solution because the application needs to support users’ actual personal libraries, including imported music. Important observation The exact same failing song plays correctly on the same Apple TV and Apple Music account in: The official Apple Music application. Sleeve, another third-party Apple TV music player. This suggests that the song itself is playable and that another third-party application can successfully initiate playback. Environment Platform: tvOS Device: Physical Apple TV Framework: MusicKit for Swift Apple Music authorization: Granted MusicKit App Service: Enabled Signing: Automatic, using a paid Apple Developer account Question Is there a known issue with resolving or playing certain personal library songs through MusicKit on tvOS? Are there additional playback parameters, library synchronization requirements, or recommended queue configurations that could explain why some MusicLibraryRequest() items fail while others work? Has anyone encountered a similar issue or found a workaround that preserves playback of the user’s actual library items? Any guidance would be greatly appreciated. Thank you!
0
0
300
6d
[tvOS] ScrollView with Text does not scroll
I'm trying to do something so seemingly basic, yet I can't get it to work and I'm flummoxed. In a basic, vanilla SwiftUI app for tvOS, embed a single Text element with a very long string (hundreds of lines) in it: struct ContentView: View { var body: some View { ScrollView(.vertical) { Text(veryLargeString) .focusable() } } } Then fire up the app on tvOS, and it will not scroll. No matter what I do. Pressing arrow keys, swiping fast with my thumb, and nothing. It will not move. Ironically, in the Xcode SwiftUI Preview window—it does scroll, so that's always a fun tease. What I do know is that the focus engine is throwing a few errors, so it's leading me to believe the issue is with how I have the focusable element attached. I'm using a combination of -UIFocusLoggingEnabled YES as well as listening for UIFocusSystem.movementDidFailNotification. Unfortunately since this is SwiftUI, the notification failure and debugging logs aren't really all that actionable. Help appreciated!
4
4
1.7k
1w
Using .sidebarAdaptable style breaks NavigationStack's transition animation in tvOS
When a NavigationStack is nested inside a TabView that's using the .sidebarAdaptable style, it completely overwrites the transition animations of the NavigationStack. In tvOS 26, the transition for push and pop instantly snaps in place. in tvOS 27, it uses its own transition animation, which has strange behaviors, such as slow crossfade, and items rearranging if the frame of the child view is different. Here is a sample code that shows what I'm talking about. struct ContentView: View { @State private var selectedTab = 0 var body: some View { TabView(selection: $selectedTab) { Tab("Home", systemImage: "house", value: 0) { NavigationStack { VStack(spacing: 30) { Text("Root Home View") .font(.title) NavigationLink("Push Detail View") { Text("Child View") .font(.largeTitle) } } } } } .tabViewStyle(.sidebarAdaptable) } } Note: Placing NavigationStack over a TabView will retain the NavigationStack's transition animations, but you lose navigation paths per tab, and child views a rendered over the tabview.
0
0
359
2w
Apple TV Siri Remote missing in Device Hub? (Xcode 27 Beta)
For the life of me, I cannot find how to bring up the Siri Remote in the Apple TV Simulator in Xcode 27 Device Hub (Beta). Is it no longer available? I have always seem to have had issues using the computer's keyboard for navigating my tvOS apps. Maybe it's me, but the Siri Remote always worked perfectly fine. I hope the remote will make a reappearance in the next beta... ?
2
2
799
Sep ’26
tvOS navigation broken in beta 27 (Siri Remote/Device Hub)
Xcode 27.0: Apple TV Simulators fail to navigate to some buttons in a UIViewController via keyboard arrows. Works fine with Xcode 26 (Siri Remote) simulator and also works as expected on an actual Siri Remote for Apple TV device running tvOS 27 Beta. Anyone else experience issues with navigating their app's UI using the Mac keyboard in Device Hub? Any tips for tracking this down?
2
1
710
Sep ’26
tvOS 26 SwiftUI .searchable Overlaps the Sidebar Toggle Button
Title: tvOS 26 SwiftUI .searchable is overlapped by the sidebar collapse button I'm seeing what appears to be a SwiftUI layout issue on tvOS 26 involving .searchable and sidebar-based navigation. When a sidebar is collapsed, tvOS shows the system sidebar toggle/collapse control in the upper-left corner. A SwiftUI .searchable field placed locally on the Search page is positioned too close to the top of the screen, causing the sidebar control to overlap the search field. Environment tvOS 26 SwiftUI Tested on a physical Apple TV Xcode 26 Example structure My app originally used: NavigationSplitView { SidebarView() } detail: { SearchView() } The search modifier is applied only to the Search page: struct SearchView: View { @State private var searchText = "" var body: some View { ScrollView { // Search content } .searchable( text: $searchText, placement: .automatic ) } } The .searchable modifier is not applied to NavigationSplitView or the root view. When the sidebar is collapsed, the system sidebar toggle overlaps the search field. I also tested a different navigation architecture using: TabView { // tabs } .tabViewStyle(.sidebarAdaptable) with the Search tab containing its own NavigationStack and local .searchable. The same overlap occurs. Interestingly, the current TestFlight version of Plozz, which uses a TabView(.sidebarAdaptable) architecture and a local SwiftUI .searchable on its Search view, appears to show the same issue on tvOS 26. This makes me suspect that the behavior is related to the tvOS 26 SwiftUI navigation/search chrome rather than a specific NavigationSplitView implementation. Things I've tried I have tried changing: .padding(.top) safeAreaInset contentMargins scrollClipDisabled moving .searchable between content views NavigationSplitView TabView(.sidebarAdaptable) wrapping the Search page in its own NavigationStack These do not solve the overlap. Applying .searchable to the root TabView does change how the system manages the search UI, but it also makes the search interface available globally across other tabs, which is not desirable. The search field should only exist on the dedicated Search page. From the SwiftUI documentation, .automatic on tvOS is expected to present the search field inline with its content. However, on tvOS 26 it appears to conflict with the sidebar navigation chrome. Expected behavior The Search page's system search field should be laid out below or clear of the sidebar toggle, similar to Apple's own tvOS apps, without requiring a custom search field. Actual behavior The sidebar collapse/toggle control visually overlaps the system .searchable field. Has anyone found a SwiftUI-only workaround for this on tvOS 26? Is this a known tvOS 26 SwiftUI issue involving .searchable and sidebar navigation chrome? I'd especially like to keep the native tvOS search field rather than replacing it with a custom TextField or UIKit search implementation.
Topic: UI Frameworks SubTopic: SwiftUI Tags:
0
0
164
Aug ’26
Liquid Glass in tvOS app icons
In the most recent tvOS 27 betas, the icons for Apple’s apps on tvOS gained Liquid Glass refraction effects that change as you move your finger over the remote’s touch surface. This can be most clearly seen in the icons for Photos and Podcasts. How can our third-party apps make use of these effects on tvOS, which isn’t supported by Icon Composer? Is the intention for third party apps to continue using flat design while Apple’s own apps use Liquid Glass?
0
3
1.4k
Aug ’26
Game Center matchmaking fails for all non-default users on Apple TV — no IDS registration for secondary users (FB24156316)
Game Center matchmaking fails for all non-default users on Apple TV — no IDS registration for secondary users (FB24156316) On a multi-user Apple TV (tvOS 26.5, Apple TV 4K 3rd gen), Game Center real-time matchmaking fails for every user except the default user, in every app I've tested — including Apple Arcade titles. Filed as FB24156316 with full logs and sysdiagnose; posting here for visibility and in case anyone has shipped multi-user GC multiplayer on tvOS successfully. My game adopts com.apple.developer.user-management (runs-as-current-user-with-user-independent-keychain). The entitlement itself works: on a secondary user's profile the app runs under that user's persona and GKLocalPlayer authenticates as them — the welcome banner shows the right account. But any GKMatchmakerViewController quickmatch hard-fails within ~9 seconds ("Failed to find players"), and accepting an invite fails with GKError 35 ("not signed in to iCloud") even though Settings shows that user's iCloud as signed in. Unified logs show the root cause. When matchmaking starts, gamed can't provision the player's pseudonym because the current user has no identity-services registration: gamed No URI found on any account -- returning nil gamed Failed to fetch pseudonym for local player. Error: GameDaemonCore.PseudonymManagerError.failedToProvision( internalError: Error Domain=com.apple.ids.IDSPseudonymErrorDomain Code=400 "Invalid URI") For the default user, the identical flow succeeds (identityservicesd … resultCode: 0). Across a full day of log capture — profile adds, a remove/re-add, multiple user switches — identityservicesd never once references the secondary users' accounts: registration for them is never attempted, not attempted-and-failed. Meanwhile gamed advertises the nearby-matchmaking Bonjour service with the default user's identity while the foreground app runs as the secondary user. Reproduction matrix: two apps (my shipping game Extreme Violence and Apple Arcade's Crossy Road Castle, which also runs under the correct persona), both sandbox and production Game Center, two unrelated secondary accounts (both healthy elsewhere). Persists across reboot and profile remove/re-add. Default user unaffected. The documentation says the entitlement is all that's needed ("each person who uses your app will have access to… their own Game Center… you don't have to make any code changes" — WWDC20 session 10645). As far as I can tell that promise is currently unfulfillable for online play: there is no API or Settings path that creates the missing IDS registration. Has anyone seen non-default-user matchmaking work on tvOS, on any version? Is there anything an app can do here, or is this purely an OS-side fix? (Related: thread 782163 — a different tvOS matchmaking failure that DTS confirmed as a bug.)
4
0
1.7k
Aug ’26
Lifecycle of a tvOS 13.2 TopShelf extension?
So recently I migrated the topshelf extension for my app from the deprecated TVServiceProvider to the new TVContentProvider in 13.0 and onwards.I finally got it working (not helped by wasting hours figuring out that the NSExtensionPrincipalClass has to be the first thing listed in the NSExtension dictionary in the Info.plist or the extension just terminates, I kid you not!) but there is one last thing that I can't figure out.What works:1. remove any instance of my application from the Apple TV2. install and launch my app from xcode on the Apple TV3. when i back out of the app, the topshelf code is working, it calls the loadTopShelfContentWithCompletionHandler function and I am able to give it what it wants and it gets displayed correctlyProblem is, if I terminate the application from Xcode, I can no longer get the topshelf to work when I try and launch it again from Xcode. It is not listed as running (as a process to attach to, for example). The app runs fine, but there is no extension process launched alongside it.I can get it working again in one of two ways; either A) reboot the Apple TV, in which case I find tvOS launches the extension a few seconds after boot without me doing anything (not even highlighting my app), or, B) following the steps above if I delete the instance from the Apple TV and install it again using Xcode.Essentially, it behaves as if the top shelf extension is launched once, and only once, on bootup of the Apple TV, or on first install. It appears to get terminated when I launch the app again using xcode (e.g. with a new build or something, or even running the same build) and only A) or B) above can get it running again.Has anyone else seen this?
5
0
3.3k
Aug ’26
tvOS app stuck in 'In Review' for days with no response
Hi everyone, We're experiencing an unusually long App Review delay for our tvOS application and wanted to check if anyone else is seeing the same behaviour or has any suggestions. App Details Platform: tvOS Xcode Version: 26.4.1 Submission Type: App Update Distribution: App Store Status: In Review Issue We submitted an app update last week, and it remained in the "In Review" state for approximately one week with no updates. Since there was no progress, we rejected that submission, uploaded a new build, and submitted it again. The new build has now also been "In Review" for the last 5 days. Apple has not rejected the app or provided any review notes or requests for additional information. The status simply remains "In Review". What we've tried Submitted an Expedited Review Request. Contacted Apple using the App Review "Contact Us" option. We have not received any response to either request. Since there is no rejection or feedback, we don't have any indication that there is an issue with the app itself. Questions Is anyone else currently experiencing unusually long review times for tvOS apps? Is this likely to be an App Review backlog or a known issue on Apple's side? Has anyone had success getting a response through App Review support or Developer Support in a similar situation? Is there anything else we can do besides waiting? Any insights or recent experiences would be greatly appreciated. Thank you!
2
0
739
Jul ’26
App Subscription "Confirm with Apple Device" UI
My tvOS app includes the purchase of subscriptions, and I am updating the code with Storekit 2.0. I have seen other apps that present the "Confirm with Apple Device" UI upon selection of a product, but for me I only ever see an alert confirming the purchase. I have tested this using Xcode storekit data and a sandbox account. I have also attempted using Storekit views and passing the UIWindowScene to the purchase(confirmIn: ) parameter, but neither made any difference. Is there some limitation that prevents that UI from showing in debug builds?
1
0
877
Jul ’26
AVPlayerController. Internal constraints conflicts on tvOS.
I’m getting Auto Layout constraint conflict warnings related to AVPlayerController in my tvOS project. This issue can be reproduced in an empty tvOS project either by simply using an AVPlayerViewController as a initial view controller or by presenting it. tvOS 26.2 Simple empty project with only one controller: import UIKit import AVKit class PlayerViewController: AVPlayerViewController { override func viewDidLoad() { super.viewDidLoad() } } After presenting that view controller, the following Auto Layout constraint conflict warnings appear in the console: Unable to simultaneously satisfy constraints. Probably at least one of the constraints in the following list is one you don't want. Try this: (1) look at each constraint and try to figure out which you don't expect; (2) find the code that added the unwanted constraint or constraints and fix it. ( "<NSLayoutConstraint:0x60000212f5c0 UIStackView:0x103222520.width >= 217 (active)>", "<NSLayoutConstraint:0x60000212f610 H:|-(>=95)-[UIStackView:0x103222520] (active, names: '|':UIView:0x103216630 )>", "<NSLayoutConstraint:0x60000212f660 UIStackView:0x103222520.trailing == UIView:0x103216630.trailing - 95 (active)>", "<NSLayoutConstraint:0x60000212f7a0 H:|-(0)-[UIView:0x103216630] (active, names: '|':_AVFocusContainerView:0x10333aea0 )>", "<NSLayoutConstraint:0x60000212f7f0 UIView:0x103216630.trailing == _AVFocusContainerView:0x10333aea0.trailing (active)>", "<NSLayoutConstraint:0x6000021309b0 '_UITemporaryLayoutWidth' _AVFocusContainerView:0x10333aea0.width == 0 (active)>" ) Will attempt to recover by breaking constraint <NSLayoutConstraint:0x60000212f5c0 UIStackView:0x103222520.width >= 217 (active)> Make a symbolic breakpoint at UIViewAlertForUnsatisfiableConstraints to catch this in the debugger. The methods in the UIConstraintBasedLayoutDebugging category on UIView listed in <UIKitCore/UIView.h> may also be helpful. How can I fix this issue? Thanks.
2
0
1.1k
Jul ’26
In App Purchase UI difference for tvOS
We're seeing differences in the purchase dialog and overall presentation when testing with Sandbox accounts compared to commercially available apps. Are these UI differences are expected and are simply a characteristic of the Sandbox testing environment, or if there are any configuration requirements that affect the purchase sheet appearance? It would be helpful to know whether developers should expect the production purchase UI to match App Store apps once the app is distributed through TestFlight/App Store, or if there are additional factors involved. Sandbox UI Expected UI
0
0
625
Jul ’26
Siri unable to tune to a live TV channel on tvOS — Intents & Shortcuts not working
Hi everyone, We are developing a live TV streaming app for tvOS that allows users to watch live channels, replay content, and manage cloud recordings. We are struggling to integrate Siri for a seemingly basic use case: switching the live TV channel by voice (e.g. "Hey Siri, switch to channel X on [our app]"). Here is what we have tried and observed: App Intents — we implemented custom intents, but Siri does not resolve them to our app for channel-switching requests. Shortcuts — we added Shortcuts support, but users have to explicitly configure them; Siri never proactively picks our app. In-app and out-of-app — the issue happens in both contexts. When the user asks Siri to switch to a channel, it either does nothing or suggests other applications, never ours. Our questions: Is there a specific INPlayMediaIntent configuration or domain required to handle live TV channel switching via Siri on tvOS? Is proper Siri integration for live TV gated behind the Apple Video Partner Program? If so, is there any public documentation or a path for apps outside the US to access it? Has anyone successfully implemented voice-driven live channel switching on tvOS outside of the Video Partner Program? Any guidance or pointers to relevant WWDC sessions would be greatly appreciated. Thank you.
1
7
986
Jul ’26
Are there Apple TV universal remotes which can work with GCController?
I have purchased an universal, non-official Apple TV remote, with a little more buttons than on the official one (i.e. the CH-/CH+) buttons. I wanted to use the GCMicroGamepad property from the underlying GCController (from GameController framework), in order to use these buttons, but although I've linked this remote to my Apple TV device (in Settings > Remotes and Devices > Learn Remote), my app doesn't recognize it (it's not being listed in GCController.controllers()). So my question is, is there something specific I can do so I can use this remote as a GCController? Or maybe is there something specific to hardware that I have to know for this to work? Thank you.
0
0
933
Jul ’26
Massive amounts of leaked memory with the tvOS 26 system player user interface
Hi, We identified massive amounts of leaked memory with the tvOS 26 standard player user interface as soon as chapters (navigation markers) are involved. Artwork images associated with chapters are not correctly released anymore, leaking memory in chunks of several MiBs. Over time apps will be terminated by the system due to excessive memory consumption. The issue was reported to Apple as tvOS 26 regression: Huge memory leaks associated with navigation marker artworks displayed in the tvOS standard user interface, filed under FB21160665.
1
0
1.2k
Jul ’26
Set Apple TV 4K hardware minimum?
Is there any UIRequiredDeviceCapabilities string that can be used to restrict an app to Apple TV 4K (2nd generation) or later hardware? I can’t find one. I’m working on a tvOS app that uses Continuity Camera. That feature only works on Apple TV 4K (2nd gen) and Apple TV 4K (3rd gen) hardware. There seems be no way to warn App Store customers that the app will not work on Apple TV 4K (1st gen). In the App Store or TestFlight, a user with a 1st gen device incorrectly sees a compatibility note that the app “Works on this Apple TV”. Setting a minimum OS version is not currently a helpful path for me — even tvOS 26.5 is compatible with 1st generation hardware. I can’t think of a good way to prevent users with an incompatible Apple TV 4K from installing an app that won’t work on their 1st generation devices. Any ideas? Am I missing something?
0
0
1.1k
Jun ’26
Feature request: level metering for MusicKit playback (FB25234486)
Hi everyone, I'm building a tvOS app that shows analog VU meters for the music playing, in the style of vintage hi-fi amplifiers and tape decks. It works well with local and network files played through AVAudioEngine, where I can tap the signal and measure real levels. With Apple Music, though, there's no way to get even basic level information. The content is DRM-protected, SystemMusicPlayer and ApplicationMusicPlayer render audio outside the app's audio graph, and MusicKit has no metering API. My current workaround is to analyze the song's 30-second preview and replay its level envelope in a loop. It looks plausible, but it isn't in sync with the actual music. I filed FB25234486 asking for a read-only metering API on MusicPlayer, similar to what AVAudioPlayer already offers: let rms = musicPlayer.averagePower(forChannel: 0) // dBFS let peak = musicPlayer.peakPower(forChannel: 0) // dBFS This wouldn't expose any audio samples: just one RMS and one peak value per channel, at a low, capped rate (around 30 Hz). Those numbers can't be turned back into audio, so content protection wouldn't be weakened, and the values could be computed inside the system's playback process. It would make a number of use cases possible: VU and peak meters, audio-reactive visualizers, ambient lighting synced to the music (HomeKit, smart lights), loudness displays, and accessibility features such as visual feedback of the music for hard-of-hearing users. If you need this too, please file your own feedback and mention FB25234486. Duplicate reports help Apple gauge demand. And if anyone has found a supported way to get playback levels from MusicKit today, I'd love to hear about it. Thanks!
Replies
0
Boosts
0
Views
59
Activity
4d
MusicKit tvOS — Some personal library songs fail with Error Code 6, while others play successfully
Hi everyone, I’m developing a native Apple TV application using MusicKit for Swift. The app provides a custom interface for browsing and playing the user’s personal Apple Music library. The application was working correctly for several months, but recently certain songs from the user’s personal library have stopped playing. I’ve been investigating this issue extensively and have reproduced it in a completely separate, minimal tvOS test application. The issue I retrieve songs using MusicLibraryRequest() and play them using ApplicationMusicPlayer. Some songs play successfully, while others consistently fail during playback preparation with: `MPMusicPlayerControllerErrorDomain Code=6 "Prepare to play failed"` The underlying errors include : NSCocoaErrorDomain Code=4099 Example of a failing song Michael Jackson — Bad (2012 Remaster) Library song ID: i.ldDOAp0UrAa62J Successfully retrieved using MusicLibraryRequest() Fails when queued with ApplicationMusicPlayer Also fails with SystemMusicPlayer Example of a working song Harry Nilsson — Everybody’s Talkin’ (1971 Mix) Library song ID: i.WmYQp9PcdZ4Y0E Retrieved using the exact same MusicLibraryRequest() Successfully plays using ApplicationMusicPlayer Both songs have library identifiers beginning with i.. What I’ve tested ApplicationMusicPlayer with prepareToPlay() followed by play(). SystemMusicPlayer with the same library song. Direct play() without explicitly calling prepareToPlay(). Retrieving songs directly using MusicLibraryRequest(), rather than accessing them through albums. A completely separate minimal tvOS application. An older version of my application’s code, recompiled using the current Xcode version. The issue persists across these tests. Interestingly, the corresponding Apple Music catalog song plays successfully when retrieved through MusicCatalogSearchRequest. However, replacing library songs with catalog equivalents is not an acceptable solution because the application needs to support users’ actual personal libraries, including imported music. Important observation The exact same failing song plays correctly on the same Apple TV and Apple Music account in: The official Apple Music application. Sleeve, another third-party Apple TV music player. This suggests that the song itself is playable and that another third-party application can successfully initiate playback. Environment Platform: tvOS Device: Physical Apple TV Framework: MusicKit for Swift Apple Music authorization: Granted MusicKit App Service: Enabled Signing: Automatic, using a paid Apple Developer account Question Is there a known issue with resolving or playing certain personal library songs through MusicKit on tvOS? Are there additional playback parameters, library synchronization requirements, or recommended queue configurations that could explain why some MusicLibraryRequest() items fail while others work? Has anyone encountered a similar issue or found a workaround that preserves playback of the user’s actual library items? Any guidance would be greatly appreciated. Thank you!
Replies
0
Boosts
0
Views
300
Activity
6d
[tvOS] ScrollView with Text does not scroll
I'm trying to do something so seemingly basic, yet I can't get it to work and I'm flummoxed. In a basic, vanilla SwiftUI app for tvOS, embed a single Text element with a very long string (hundreds of lines) in it: struct ContentView: View { var body: some View { ScrollView(.vertical) { Text(veryLargeString) .focusable() } } } Then fire up the app on tvOS, and it will not scroll. No matter what I do. Pressing arrow keys, swiping fast with my thumb, and nothing. It will not move. Ironically, in the Xcode SwiftUI Preview window—it does scroll, so that's always a fun tease. What I do know is that the focus engine is throwing a few errors, so it's leading me to believe the issue is with how I have the focusable element attached. I'm using a combination of -UIFocusLoggingEnabled YES as well as listening for UIFocusSystem.movementDidFailNotification. Unfortunately since this is SwiftUI, the notification failure and debugging logs aren't really all that actionable. Help appreciated!
Replies
4
Boosts
4
Views
1.7k
Activity
1w
Using .sidebarAdaptable style breaks NavigationStack's transition animation in tvOS
When a NavigationStack is nested inside a TabView that's using the .sidebarAdaptable style, it completely overwrites the transition animations of the NavigationStack. In tvOS 26, the transition for push and pop instantly snaps in place. in tvOS 27, it uses its own transition animation, which has strange behaviors, such as slow crossfade, and items rearranging if the frame of the child view is different. Here is a sample code that shows what I'm talking about. struct ContentView: View { @State private var selectedTab = 0 var body: some View { TabView(selection: $selectedTab) { Tab("Home", systemImage: "house", value: 0) { NavigationStack { VStack(spacing: 30) { Text("Root Home View") .font(.title) NavigationLink("Push Detail View") { Text("Child View") .font(.largeTitle) } } } } } .tabViewStyle(.sidebarAdaptable) } } Note: Placing NavigationStack over a TabView will retain the NavigationStack's transition animations, but you lose navigation paths per tab, and child views a rendered over the tabview.
Replies
0
Boosts
0
Views
359
Activity
2w
TextField cannot receive keyboard input via Device Hub (Xcode 27.0 beta 6, tvOS 27.0)
Environment: Xcode 27.0 beta 6, Device Hub, tvOS 27.0 When focusing a TextField and using Device Hub to run on tvOS 27.0, I cannot type any text into the field. Focus moves to the TextField as expected, but keyboard input is not received. Has anyone else run into this? Any workaround would be appreciated.
Replies
2
Boosts
3
Views
1.1k
Activity
3w
Apple TV Siri Remote missing in Device Hub? (Xcode 27 Beta)
For the life of me, I cannot find how to bring up the Siri Remote in the Apple TV Simulator in Xcode 27 Device Hub (Beta). Is it no longer available? I have always seem to have had issues using the computer's keyboard for navigating my tvOS apps. Maybe it's me, but the Siri Remote always worked perfectly fine. I hope the remote will make a reappearance in the next beta... ?
Replies
2
Boosts
2
Views
799
Activity
Sep ’26
tvOS navigation broken in beta 27 (Siri Remote/Device Hub)
Xcode 27.0: Apple TV Simulators fail to navigate to some buttons in a UIViewController via keyboard arrows. Works fine with Xcode 26 (Siri Remote) simulator and also works as expected on an actual Siri Remote for Apple TV device running tvOS 27 Beta. Anyone else experience issues with navigating their app's UI using the Mac keyboard in Device Hub? Any tips for tracking this down?
Replies
2
Boosts
1
Views
710
Activity
Sep ’26
tvOS 26 SwiftUI .searchable Overlaps the Sidebar Toggle Button
Title: tvOS 26 SwiftUI .searchable is overlapped by the sidebar collapse button I'm seeing what appears to be a SwiftUI layout issue on tvOS 26 involving .searchable and sidebar-based navigation. When a sidebar is collapsed, tvOS shows the system sidebar toggle/collapse control in the upper-left corner. A SwiftUI .searchable field placed locally on the Search page is positioned too close to the top of the screen, causing the sidebar control to overlap the search field. Environment tvOS 26 SwiftUI Tested on a physical Apple TV Xcode 26 Example structure My app originally used: NavigationSplitView { SidebarView() } detail: { SearchView() } The search modifier is applied only to the Search page: struct SearchView: View { @State private var searchText = "" var body: some View { ScrollView { // Search content } .searchable( text: $searchText, placement: .automatic ) } } The .searchable modifier is not applied to NavigationSplitView or the root view. When the sidebar is collapsed, the system sidebar toggle overlaps the search field. I also tested a different navigation architecture using: TabView { // tabs } .tabViewStyle(.sidebarAdaptable) with the Search tab containing its own NavigationStack and local .searchable. The same overlap occurs. Interestingly, the current TestFlight version of Plozz, which uses a TabView(.sidebarAdaptable) architecture and a local SwiftUI .searchable on its Search view, appears to show the same issue on tvOS 26. This makes me suspect that the behavior is related to the tvOS 26 SwiftUI navigation/search chrome rather than a specific NavigationSplitView implementation. Things I've tried I have tried changing: .padding(.top) safeAreaInset contentMargins scrollClipDisabled moving .searchable between content views NavigationSplitView TabView(.sidebarAdaptable) wrapping the Search page in its own NavigationStack These do not solve the overlap. Applying .searchable to the root TabView does change how the system manages the search UI, but it also makes the search interface available globally across other tabs, which is not desirable. The search field should only exist on the dedicated Search page. From the SwiftUI documentation, .automatic on tvOS is expected to present the search field inline with its content. However, on tvOS 26 it appears to conflict with the sidebar navigation chrome. Expected behavior The Search page's system search field should be laid out below or clear of the sidebar toggle, similar to Apple's own tvOS apps, without requiring a custom search field. Actual behavior The sidebar collapse/toggle control visually overlaps the system .searchable field. Has anyone found a SwiftUI-only workaround for this on tvOS 26? Is this a known tvOS 26 SwiftUI issue involving .searchable and sidebar navigation chrome? I'd especially like to keep the native tvOS search field rather than replacing it with a custom TextField or UIKit search implementation.
Topic: UI Frameworks SubTopic: SwiftUI Tags:
Replies
0
Boosts
0
Views
164
Activity
Aug ’26
Liquid Glass in tvOS app icons
In the most recent tvOS 27 betas, the icons for Apple’s apps on tvOS gained Liquid Glass refraction effects that change as you move your finger over the remote’s touch surface. This can be most clearly seen in the icons for Photos and Podcasts. How can our third-party apps make use of these effects on tvOS, which isn’t supported by Icon Composer? Is the intention for third party apps to continue using flat design while Apple’s own apps use Liquid Glass?
Replies
0
Boosts
3
Views
1.4k
Activity
Aug ’26
Game Center matchmaking fails for all non-default users on Apple TV — no IDS registration for secondary users (FB24156316)
Game Center matchmaking fails for all non-default users on Apple TV — no IDS registration for secondary users (FB24156316) On a multi-user Apple TV (tvOS 26.5, Apple TV 4K 3rd gen), Game Center real-time matchmaking fails for every user except the default user, in every app I've tested — including Apple Arcade titles. Filed as FB24156316 with full logs and sysdiagnose; posting here for visibility and in case anyone has shipped multi-user GC multiplayer on tvOS successfully. My game adopts com.apple.developer.user-management (runs-as-current-user-with-user-independent-keychain). The entitlement itself works: on a secondary user's profile the app runs under that user's persona and GKLocalPlayer authenticates as them — the welcome banner shows the right account. But any GKMatchmakerViewController quickmatch hard-fails within ~9 seconds ("Failed to find players"), and accepting an invite fails with GKError 35 ("not signed in to iCloud") even though Settings shows that user's iCloud as signed in. Unified logs show the root cause. When matchmaking starts, gamed can't provision the player's pseudonym because the current user has no identity-services registration: gamed No URI found on any account -- returning nil gamed Failed to fetch pseudonym for local player. Error: GameDaemonCore.PseudonymManagerError.failedToProvision( internalError: Error Domain=com.apple.ids.IDSPseudonymErrorDomain Code=400 "Invalid URI") For the default user, the identical flow succeeds (identityservicesd … resultCode: 0). Across a full day of log capture — profile adds, a remove/re-add, multiple user switches — identityservicesd never once references the secondary users' accounts: registration for them is never attempted, not attempted-and-failed. Meanwhile gamed advertises the nearby-matchmaking Bonjour service with the default user's identity while the foreground app runs as the secondary user. Reproduction matrix: two apps (my shipping game Extreme Violence and Apple Arcade's Crossy Road Castle, which also runs under the correct persona), both sandbox and production Game Center, two unrelated secondary accounts (both healthy elsewhere). Persists across reboot and profile remove/re-add. Default user unaffected. The documentation says the entitlement is all that's needed ("each person who uses your app will have access to… their own Game Center… you don't have to make any code changes" — WWDC20 session 10645). As far as I can tell that promise is currently unfulfillable for online play: there is no API or Settings path that creates the missing IDS registration. Has anyone seen non-default-user matchmaking work on tvOS, on any version? Is there anything an app can do here, or is this purely an OS-side fix? (Related: thread 782163 — a different tvOS matchmaking failure that DTS confirmed as a bug.)
Replies
4
Boosts
0
Views
1.7k
Activity
Aug ’26
Lifecycle of a tvOS 13.2 TopShelf extension?
So recently I migrated the topshelf extension for my app from the deprecated TVServiceProvider to the new TVContentProvider in 13.0 and onwards.I finally got it working (not helped by wasting hours figuring out that the NSExtensionPrincipalClass has to be the first thing listed in the NSExtension dictionary in the Info.plist or the extension just terminates, I kid you not!) but there is one last thing that I can't figure out.What works:1. remove any instance of my application from the Apple TV2. install and launch my app from xcode on the Apple TV3. when i back out of the app, the topshelf code is working, it calls the loadTopShelfContentWithCompletionHandler function and I am able to give it what it wants and it gets displayed correctlyProblem is, if I terminate the application from Xcode, I can no longer get the topshelf to work when I try and launch it again from Xcode. It is not listed as running (as a process to attach to, for example). The app runs fine, but there is no extension process launched alongside it.I can get it working again in one of two ways; either A) reboot the Apple TV, in which case I find tvOS launches the extension a few seconds after boot without me doing anything (not even highlighting my app), or, B) following the steps above if I delete the instance from the Apple TV and install it again using Xcode.Essentially, it behaves as if the top shelf extension is launched once, and only once, on bootup of the Apple TV, or on first install. It appears to get terminated when I launch the app again using xcode (e.g. with a new build or something, or even running the same build) and only A) or B) above can get it running again.Has anyone else seen this?
Replies
5
Boosts
0
Views
3.3k
Activity
Aug ’26
tvOS app stuck in 'In Review' for days with no response
Hi everyone, We're experiencing an unusually long App Review delay for our tvOS application and wanted to check if anyone else is seeing the same behaviour or has any suggestions. App Details Platform: tvOS Xcode Version: 26.4.1 Submission Type: App Update Distribution: App Store Status: In Review Issue We submitted an app update last week, and it remained in the "In Review" state for approximately one week with no updates. Since there was no progress, we rejected that submission, uploaded a new build, and submitted it again. The new build has now also been "In Review" for the last 5 days. Apple has not rejected the app or provided any review notes or requests for additional information. The status simply remains "In Review". What we've tried Submitted an Expedited Review Request. Contacted Apple using the App Review "Contact Us" option. We have not received any response to either request. Since there is no rejection or feedback, we don't have any indication that there is an issue with the app itself. Questions Is anyone else currently experiencing unusually long review times for tvOS apps? Is this likely to be an App Review backlog or a known issue on Apple's side? Has anyone had success getting a response through App Review support or Developer Support in a similar situation? Is there anything else we can do besides waiting? Any insights or recent experiences would be greatly appreciated. Thank you!
Replies
2
Boosts
0
Views
739
Activity
Jul ’26
App Subscription "Confirm with Apple Device" UI
My tvOS app includes the purchase of subscriptions, and I am updating the code with Storekit 2.0. I have seen other apps that present the "Confirm with Apple Device" UI upon selection of a product, but for me I only ever see an alert confirming the purchase. I have tested this using Xcode storekit data and a sandbox account. I have also attempted using Storekit views and passing the UIWindowScene to the purchase(confirmIn: ) parameter, but neither made any difference. Is there some limitation that prevents that UI from showing in debug builds?
Replies
1
Boosts
0
Views
877
Activity
Jul ’26
AVPlayerController. Internal constraints conflicts on tvOS.
I’m getting Auto Layout constraint conflict warnings related to AVPlayerController in my tvOS project. This issue can be reproduced in an empty tvOS project either by simply using an AVPlayerViewController as a initial view controller or by presenting it. tvOS 26.2 Simple empty project with only one controller: import UIKit import AVKit class PlayerViewController: AVPlayerViewController { override func viewDidLoad() { super.viewDidLoad() } } After presenting that view controller, the following Auto Layout constraint conflict warnings appear in the console: Unable to simultaneously satisfy constraints. Probably at least one of the constraints in the following list is one you don't want. Try this: (1) look at each constraint and try to figure out which you don't expect; (2) find the code that added the unwanted constraint or constraints and fix it. ( "<NSLayoutConstraint:0x60000212f5c0 UIStackView:0x103222520.width >= 217 (active)>", "<NSLayoutConstraint:0x60000212f610 H:|-(>=95)-[UIStackView:0x103222520] (active, names: '|':UIView:0x103216630 )>", "<NSLayoutConstraint:0x60000212f660 UIStackView:0x103222520.trailing == UIView:0x103216630.trailing - 95 (active)>", "<NSLayoutConstraint:0x60000212f7a0 H:|-(0)-[UIView:0x103216630] (active, names: '|':_AVFocusContainerView:0x10333aea0 )>", "<NSLayoutConstraint:0x60000212f7f0 UIView:0x103216630.trailing == _AVFocusContainerView:0x10333aea0.trailing (active)>", "<NSLayoutConstraint:0x6000021309b0 '_UITemporaryLayoutWidth' _AVFocusContainerView:0x10333aea0.width == 0 (active)>" ) Will attempt to recover by breaking constraint <NSLayoutConstraint:0x60000212f5c0 UIStackView:0x103222520.width >= 217 (active)> Make a symbolic breakpoint at UIViewAlertForUnsatisfiableConstraints to catch this in the debugger. The methods in the UIConstraintBasedLayoutDebugging category on UIView listed in <UIKitCore/UIView.h> may also be helpful. How can I fix this issue? Thanks.
Replies
2
Boosts
0
Views
1.1k
Activity
Jul ’26
In App Purchase UI difference for tvOS
We're seeing differences in the purchase dialog and overall presentation when testing with Sandbox accounts compared to commercially available apps. Are these UI differences are expected and are simply a characteristic of the Sandbox testing environment, or if there are any configuration requirements that affect the purchase sheet appearance? It would be helpful to know whether developers should expect the production purchase UI to match App Store apps once the app is distributed through TestFlight/App Store, or if there are additional factors involved. Sandbox UI Expected UI
Replies
0
Boosts
0
Views
625
Activity
Jul ’26
Siri unable to tune to a live TV channel on tvOS — Intents & Shortcuts not working
Hi everyone, We are developing a live TV streaming app for tvOS that allows users to watch live channels, replay content, and manage cloud recordings. We are struggling to integrate Siri for a seemingly basic use case: switching the live TV channel by voice (e.g. "Hey Siri, switch to channel X on [our app]"). Here is what we have tried and observed: App Intents — we implemented custom intents, but Siri does not resolve them to our app for channel-switching requests. Shortcuts — we added Shortcuts support, but users have to explicitly configure them; Siri never proactively picks our app. In-app and out-of-app — the issue happens in both contexts. When the user asks Siri to switch to a channel, it either does nothing or suggests other applications, never ours. Our questions: Is there a specific INPlayMediaIntent configuration or domain required to handle live TV channel switching via Siri on tvOS? Is proper Siri integration for live TV gated behind the Apple Video Partner Program? If so, is there any public documentation or a path for apps outside the US to access it? Has anyone successfully implemented voice-driven live channel switching on tvOS outside of the Video Partner Program? Any guidance or pointers to relevant WWDC sessions would be greatly appreciated. Thank you.
Replies
1
Boosts
7
Views
986
Activity
Jul ’26
Are there Apple TV universal remotes which can work with GCController?
I have purchased an universal, non-official Apple TV remote, with a little more buttons than on the official one (i.e. the CH-/CH+) buttons. I wanted to use the GCMicroGamepad property from the underlying GCController (from GameController framework), in order to use these buttons, but although I've linked this remote to my Apple TV device (in Settings > Remotes and Devices > Learn Remote), my app doesn't recognize it (it's not being listed in GCController.controllers()). So my question is, is there something specific I can do so I can use this remote as a GCController? Or maybe is there something specific to hardware that I have to know for this to work? Thank you.
Replies
0
Boosts
0
Views
933
Activity
Jul ’26
Massive amounts of leaked memory with the tvOS 26 system player user interface
Hi, We identified massive amounts of leaked memory with the tvOS 26 standard player user interface as soon as chapters (navigation markers) are involved. Artwork images associated with chapters are not correctly released anymore, leaking memory in chunks of several MiBs. Over time apps will be terminated by the system due to excessive memory consumption. The issue was reported to Apple as tvOS 26 regression: Huge memory leaks associated with navigation marker artworks displayed in the tvOS standard user interface, filed under FB21160665.
Replies
1
Boosts
0
Views
1.2k
Activity
Jul ’26
Set Apple TV 4K hardware minimum?
Is there any UIRequiredDeviceCapabilities string that can be used to restrict an app to Apple TV 4K (2nd generation) or later hardware? I can’t find one. I’m working on a tvOS app that uses Continuity Camera. That feature only works on Apple TV 4K (2nd gen) and Apple TV 4K (3rd gen) hardware. There seems be no way to warn App Store customers that the app will not work on Apple TV 4K (1st gen). In the App Store or TestFlight, a user with a 1st gen device incorrectly sees a compatibility note that the app “Works on this Apple TV”. Setting a minimum OS version is not currently a helpful path for me — even tvOS 26.5 is compatible with 1st generation hardware. I can’t think of a good way to prevent users with an incompatible Apple TV 4K from installing an app that won’t work on their 1st generation devices. Any ideas? Am I missing something?
Replies
0
Boosts
0
Views
1.1k
Activity
Jun ’26