Apple will soon remove Stadium, an app that allows players to natively play games from Google's Stadia streaming service on their iOS device using some code trickery, from the App Store. Stadium developer Zach Knox confirmed the move to VICE Games.
"I'm not resentful at app review [Apple's board for reviewing apps] for this decision," said Knox in an email last night. "I'm obviously disappointed, and may not agree with their reasoning, but I get it. They spent 3 weeks on it so obviously had some internal discussion on the matter. This isn't some #FreeStadium tirade on my part."
Apple did not respond to an immediate request for comment.
Google has an official Stadia app for iOS, but you cannot play games through it—it's only for managing your friends and other account details. The lack of streaming is likely related to restrictive App Store policies, which Microsoft has criticized, because it has prevented the company from launching its streaming service, xCloud, on Apple platforms. Apple recently shifted its policies to allow companies like Microsoft and Google to submit every game that can be streamed as its own app, a burdensome request not applied to services like Netflix.
Stadium is listed as "Stadium Full Screen Browser" in the App Store and does not advertise its connection to Stadia, beyond the nod in the name. What it allows users to do, however, is change how a webpage interprets them, dubbed the "user agent." You can basically trick Stadia's website into thinking you're a Chrome browser. Thus, Stadia streaming then works.
A few weeks back, Amazon announced its own streaming service, Luna. Unlike Microsoft, Amazon isn't going to mess with the App Store's byzantine policies, and instead focus on players streaming through the web, where there are fewer restrictions. This prompted Knox, a Stadia user themselves, to see if they could get Stadia to work on an iOS device by playing around with the browser. Obviously, it worked, and the result was a lot of headlines about how it was possible to trick an iOS device into streaming Stadia via the App Store.
Importantly, Stadium also takes advantage of a built-in iOS API called "game controller." iOS 13 added native support for both Xbox and PlayStation controllers, and Stadium found a way to hook into that API through the web browser. It's possible this is what caught Apple's eye.
"I suppose I’m a little concerned about the app being taken down," said Knox to VICE Games a few weeks back, "but I don’t see any reason for them to. It’s just a web browser with a weird address bar."
Knox had no trouble submitting the original Stadium app through the App Store review process. The problems started when Knox tried to release a patch for his app, which came after Stadium had received quite a bit of attention from the press and iOS users.
"I said I wasn’t scared of App Review removing my app," said Knox last night. "I should have been."
The process of updating an app is not as simple as uploading a patch and calling it a day. Apple has to sign off on each and every update. Often that process goes by quickly, but if Apple wants to grind everything to a halt, they can and will. (To be fair, this also happens on platforms like Xbox, PlayStation and Switch.) With Stadium, this new patch was stuck "in review," suggesting Apple was taking a closer look.
Soon, Apple rejected the patch over a minor bug involving a URL field and what it called "app completeness." Apple then asked Knox to explain who the target audience for the app was. This is what Knox wrote to Apple, which didn't hide what Stadium was trying to do:
"I believe the target audience is users who access a webpage which, while technically capable of working properly in WebKit on iOS 14, is blocked by webpages because they detect an iOS user agent string. My target audience is likely particularly interested in doing this while using a game controller. I could not find another app on the store which both allowed me to change the user agent and properly supported game controller input on webpages (in practice, this is often utilized alongside live streaming video). "
Knox fixed the URL issue and sent along a new build of Stadium. Hours—and then days— went by without an update from Apple, prompting Knox to just continue work on the app.
"App reviews, in my experience and hearing others, take one of two amounts of time," said Knox. "Either fairly short (like 10-15 minutes) and an approval, or pretty long (hour+) with a significantly higher likelihood of rejection. But days of review felt excessive."
After sending a request to Apple for clarification on the delay, Apple told Knox that "reviews can take time." After another week went by, Knox pinged them again—same response, except reportedly with a "we have our process, please calm down" tone of voice from the company.
On Monday, Apple called Knox to say Stadium "wasn't in compliance." The company clarified that using the native controller API in WebKit, aka the technological guts of the iOS web browser, is "extending" what it was meant for. Knox asked Apple to point out where the violation was in the App Store guidelines, and said they would have to get back to him.
Knox still hasn't heard back from Apple on the specific infraction, but believes it's related to bullet point 4.7 in the official App Review guidelines, which relates to how the browser can operate, including how an app "only uses capabilities available in a standard WebKit view."
"They were speaking very authoritatively over the phone, there was nothing I could say that would change their minds," said Knox. "When asking about if they could do something about the long wait, they basically quoted me the form email I got. When asking about the app as it is on the store, they said it would be removed as it's out of compliance.”
For now, Stadium is still on the App Store.