The fourth-generation Apple TV comes with several new tricks that the older models are not privy to, such as Siri support and third-party apps and games. One feature missing, however, is the ability to browse the Web.
Despite tvOS being based heavily on iOS, the Safari browser has been stripped from the Apple TV, meaning the only browsing you will be doing is via mirroring with AirPlay from your other Apple devices.
With a simple hack, however, you will be browsing the Web with your Apple TV in a matter of minutes. Here's how it's done.
What you will need
You will need a couple of things before you get started, such as a free Apple Developer account, Xcode and a USB-C cable or an adapter.
If you don't already have a developer account with Apple, head over to developer.apple.com/account and sign in using your existing Apple ID.
Next, from your Mac, open the App Store, search for "Xcode" and download the application. It will automatically install.
If you happen to have a 12-inch MacBook, the included USB-C cable will work for this application. Otherwise, you will need a USB-A to USB-C cable, which you can find online for around $10. Just be careful of which one you buy (and reference this spreadsheet to see which ones are up to spec.)
Finally, you will need the source code to tvOSBrowser, which we will download from the GitHub repository using Xcode.
Installing the browser
Begin by opening the Applications folder in Finder and locating the Xcode.app. Right click on the application and select Show Package Contents. From there, navigate to Contents>Developer>Platforms>AppleTVOS.platform>Developer>SDKs>AppleTVOS.sdk>usr>include and locate the file Availability.h. Right click on the file and open in TextEdit or another text editor.
Locate these two lines of code, which can be found on lines 279 and 280:
- #define __TVOS_UNAVAILABLE __OS_AVAILABILITY(tvos,unavailable)
- #define __TVOS_PROHIBITED __OS_AVAILABILITY(tvos,unavailable)
Change them to:
- #define __TVOS_UNAVAILABLE_NOTQUITE __OS_AVAILABILITY(tvos,unavailable)
- #define __TVOS_PROHIBITED_NOTQUITE __OS_AVAILABILITY(tvos,unavailable)
Save the file and open Xcode. Ignore the window that loads and click on Source Control in the menu bar, then select Check Out. In the repository location field, paste "https://github.com/steventroughtonsmith/tvOSBrowser.git" and click Next. When asked, select the master branch of the repository and proceed.
In the left pane of Xcode, click on the Browser app you just imported. You will need to alter the Bundle Identifier. By default, it is com.highcaffeinecontent.Browser. Change it to something unique like: com.[nickname].Browser. Just ensure there are no spaces in the identifier.
Below the Bundle Identifier field, click on the dropdown menu beside Team. Select your Apple ID. If you're not logged in, click Add an Account and login with your Apple ID credentials.
Connect your Apple TV to your Mac using the USB-C cable.
At the top of the Xcode window, you will see Play and Stop buttons. Beside that are two menu buttons, one is the name of the app (in this case, Browser) and the other is the output source for where you will be executing the code. By default, if no Apple TV is detected, Xcode will run an Apple TV simulator upon executing the code. To ensure, you're pushing the code to the Apple TV, click on the button to the right and make sure Apple TV under Devices is selected, not Apple TV 1080p under tvOS Simulator.
Once the code finishes executing, you should see an app on your Apple TV called Safari. Click on it to open.
Using the browser on Apple TV
The Safari browser on Apple TV is relatively intuitive and simple to use.
Depending on which mode you're in sliding your finger around on the Apple TV remote's trackpad will move the cursor or scroll up and down the page. To switch between the modes, double-click the trackpad.
Clicking the trackpad does exactly what you would expect it to -- it clicks and will open links or select on-screen content. The Menu button operates as a back button. Double-clicking the Menu button will load a Settings menu, where you can change the homepage, view history and more. And pressing the Play/Pause button brings up an address and search bar, which uses Google as the default search engine.
The developer hasn't updated the source code in several months, and as such this is a very basic browser. It's missing some features you may find necessary from a computer or mobile device, but should suffice for basic needs of browsing via Apple TV.