Apple asks to block iOS Unreal Engine development in new court filing

Promotional image from video game shows a man with a rocket launcher leaping away from numerous explosions.
Enlarge / Artist’s conception of Apple’s conception of Epic trying to evade punishment for its breach of Apple’s developer agreement with regards to Fortnite.

As the legal battle between Epic Games and Apple moves toward a September 28 hearing, the iPhone maker is mincing no words in arguing against Epic’s request for a preliminary injunction that would bring Fortnite back to the iOS App Store. In a 37-page motion filed late Tuesday, Apple says that it needs to retain the ability to punish “one of the most egregious acts of sabotage that Apple has experienced with any developer.”

“Epic started a fire, and poured gasoline on it, and now asks this Court for emergency assistance in putting it out, even though Epic can do so itself in an instant by simply adhering to the contractual terms that have profitably governed its relationship with Apple for years,” the motion reads, in part. “Epic is a saboteur, not a martyr.”

Security-centered arguments

Apple’s argument for keeping Fortnite off the App Store without changes relies heavily on arguments around protecting iPhone security. When Apple first created the iOS App Store, it says, “Rather than recreating the Internet, Apple opted instead to create a safe and trusted place for its iPhone customers to discover and download apps, confident that they will work seamlessly and securely with the tap of a finger.”

Epic undermined that secure approach by violating the contractual terms of its developer agreement and inserting its own Direct Payments option into the iOS version of Fortnite via a “hotfix”, which Apple was unable to review before it went live. Because of this, Apple says it was unable to ensure that Epic had “not made changes to the payment system or bypassed security features of the iPhone or privacy protections,” as it usually does.

As it stands, for instance, Fortnite‘s Direct Payment Option (which remains available and widely used by players who previously downloaded Fortnite for iOS) is not blocked by the iPhone’s built-in parental control restrictions on in-app purchases. “Apple promises its customers that the App Store will be a safe and trustworthy place for customers to discover and download apps,” the company writes. “By inserting secret and unreviewed functionality into an app, Epic threatens the relationship between Apple and iPhone customers.”

If Epic succeeds in its argument here, Apple warns, there will be nothing stopping other developers from also undermining Apple’s 30 percent cut of in-app purchases. “Epic insists that other developers will not follow its lead because they will fear ‘retaliation,'” Apple writes. “But no one will fear Apple’s response if this Court grants the injunction Epic seeks and declares that all developers can flout Apple’s rules with no consequence as long as they claim Apple’s rules are anticompetitive.”

Still going after Unreal Engine

Fortnite aside, Apple also argues that it must retain the right to close all of Epic’s iOS developer accounts. That includes the accounts behind the development of Unreal Engine on iOS, which are currently protected by a restraining order.

Apple says it wants to close all of Epic’s accounts in part to prevent what it calls a “shell game” of apps being transferred from one developer account to another. But Apple says it’s also because the company now sees Epic’s Unreal Engine as a “potential threat” that poses as a second potential ‘trojan horse’ that would enable Epic to carry through on its threats to undermine the App Store and insert further unauthorized features.”

Through Unreal Engine, Apple argues, Epic could “insert malware, or other unauthorized features such as alternative direct payment mechanisms” into “the non-Epic apps that are available on the App Store and rely on Unreal Engine… It is easy to see that a rogue application affecting the operation of a significant fraction of the world’s iPhones could substantially disrupt local or even worldwide telephony systems, as well as broad segments of the Internet itself.”

As far-fetched as those claims of worldwide-Internet-sabotage-via-game-engine may be, Apple’s main point is that it can no longer give Epic the benefit of the doubt with regard to its iPhone security and iOS development contract obligations. “Apple does not wait to be fooled a second time before terminating an affiliate for the bad deeds of its principals,” the company writes.

Not a monopoly?

The rest of Apple’s motion largely rehashes previous arguments that Epic is unlikely to prove its claims that Apple is a monopolist exerting unreasonable control over the marketplace. The fact that Epic enjoys “alternative means to distribute Fortnite,” from consoles and PCs to Android phones, “present[s] a textbook example of services that are ‘reasonably interchangeable’ when used ‘for the same purposes,'” Apple writes.

More than that, though, even on iOS Apple says that Epic has other options to monetize Fortnite without paying Apple’s 30 percent fee on in-app purchases. “A developer can generate revenue through advertising, through the sale of physical goods and services, and through any number of other ways that will result in no commission to Apple,” the company writes, adding that over 80 percent of the apps on the App Store use such business models.

Apple also reiterates its position, previously supported by the court, that Epic’s harm in this matter is self-inflicted and thus does not require a preliminary injunction to rectify. To Epic’s claimed “reputational harm” in being forced off the App Store, Apple notes that “Epic has engaged in a full-scale, pre-planned media blitz surrounding its decision to breach its agreement with Apple, creating ad campaigns around the effort that continue to this day. If Epic were truly concerned that it would suffer reputational injury from this dispute, it would not be engaging in these elaborate efforts to publicize it.”


[promo keywords="" brand="" category="" rows="" start=""]