Apple removed a browser from the App Store today, notifying the developer they were "'extending WebKit' by hooking it into the native GameController framework and thus Bluetooth controllers, which they didn’t like."[1]
Apple has no rules against having Bluetooth and web views in the same app, and there are plenty of other apps that do this.[2-4]
I think this is an excellent example of the 'heads you win, tails you lose' nature of Apple neutering WebKit's support for web APIs while simultaneously claiming the web is available as an alternative to apps on their devices.
Kind of an odd move to put yourself in the middle of this. It's obvious Apple doesn't want these apps on iOS's app store, so Microsoft and Google not fighting back is a sign that they're waiting to see how the Apple vs. Epic Games case plays out before deciding what to do next (or, for Google, it means they've already given up on Stadia - which I don't think anyone would be surprised about). Putting the effort in to make a viewer app is just asking to be taken down as soon as senior Apple personnel get wind of it.
I don't think Apple cares what technology is actually being used to run the app (whether it be webkit or native code), they just want every streaming game to be a different app on the store so they can selectively assign age ratings and $other_reasons_probably_money. This obviously doesn't apply to safari-based apps - Apple can't do anything if MS gets xcloud.microsoft.com working on iOS.
The scary part of this story, to me, is it seems they can do something: they can pull that from the App Store arbitrarily by inventing another 'new' 'rule' that was never on the books or enforced
Apple iOS has 13% of the global market and Android has around 85%, but somehow Apple is always the focus because developers gets hurt instead of the users.
Gaming through the browser should be a fallback when everything else fails. It’s just wasting electricity because developers can’t be bothered.
> While the company has respect for the creativity, they say Stadium uses public APIs in a way that Apple does not intend. Specifically, it extends WebKit to expose native APIs that allows websites access to Bluetooth. The company points to App Store Review Guideline section 2.5.1 that requires apps to use public APIs only “for their intended” purposes and the Apple Developer Program License Agreement 3.31 that requires the same
Hmm, Apple seems to be saying that the browser gave web apps unrestricted access to bluetooth, so they banned them under the anti-exploit section? I guess bridging system APIs to web apps could result in additional security and privacy holes, but game controller support seems like an eminently solvable issue, especially considering that Luna will access game controllers out of the box in Safari without any webkit extensions or bridging the native bluetooth APIs.
It's worth noting that apps like Scriptable also appear to bridge native APIs to webkit and JavaScript.
Apple has no rules against having Bluetooth and web views in the same app, and there are plenty of other apps that do this.[2-4]
I think this is an excellent example of the 'heads you win, tails you lose' nature of Apple neutering WebKit's support for web APIs while simultaneously claiming the web is available as an alternative to apps on their devices.