This might not be the first time you’ve read about Charles Proxy here on the WillowTree blog. Maybe you’ve even watched this awesome video about Charles Proxy my co-workers made& as part of the WillowTalk series. But just in case you’re unfamiliar with Charles, it’s a tool that allows us to setup a workstation as a proxy between an app we’re developing and the internet. It also allows us to inspect API requests and spoof the responses.
The QA team at WillowTree uses Charles Proxy frequently to do things like validate network calls, verify analytics, modify responses to do negative testings, etc. Setting up Charles on devices is usually a pretty straightforward process. But as we recently discovered, it’s a different story when you’re working with tvOS apps.
There is no apparent way to add proxy settings, and in order to encrypt communications using SSL (Secure Sockets Layer) with Charles Proxy, you have to install the Charles SSL certificate from www.charlesproxy.com/getssl on the device you’re checking. But this is impossible on an Apple TV because there is no browser and no way to install certificates locally.
After some research, we found out Apple Configurator (a tool for quickly setting up many devices with predefined settings like wifi networks and content filters) can be used to solve both of these issues. * What follows, is how we set up Charles Proxy to work with tvOS using Apple Configurator.
In order to set up tvOS, you need to use a profile to setup a proxy.
*Note: You can also use wifi settings and setup the proxy for only one network. You will need to select Wi-Fi from the left and input your network settings along with a manual proxy using the same settings. This means the proxy won’t be used if you use a different Wi-Fi network.)
*Note: Large organizations often use Apple Configurator to set up security settings and other restrictions more easily. It should be noted that Apple Configurator is not something we use often at WillowTree, as we try to emulate real-world use cases to get the most coverage possible. For us, that means configuring each device differently.