They can still build and test on-device, they just won't be able to publish anything to the app store.
Specifically, in XCode, they can add an Apple ID (any Apple ID) and use that to build on a device.[1] This creates a "personal team"[2] which you can use to test on your devices.
That would work technically, but legally would a company that has been banned from the developer program have their developers use "Personal Teams" also be against the Terms of Service?
You absolutely can use Apple's developer tools without a developer account, and you absolutely can build and run code on a device without a developer account. I'm not sure why Epic claimed otherwise (other than that losing their developer account makes it far more inconvenient), but it's really just fearmongering to try to get the public on their side.
Just because you're physically able to download, install, and run something doesn't mean you have the legal right to use it. The developer tools come with a license agreement in which Apple legally grants you the rights to use the tools, and those rights can be revoked.
You need to re-sign it frequently because the certificate is only short-lived, and I think there are difficulties in signing existing binaries that make it mostly only useful for things you can distribute the source for.
It's not really an alternative to an app store. There are also enterprise signing certificates for distributing custom apps within large companies without these restrictions, along with cases in the past where people have abused this to distribute; these are usually shut down pretty quickly as a blatant violation of the licencing agreement.
Re-signing iOS binaries is tedious, but ultimately scriptable (including creating certificates, provisioning profiles, etc.). Android’s sideloading is significantly easier, and it still hasn’t led to anyone competing with their App Store.
Amazon at one point made a strong attempt to compete, and I actually bought a few apps from there. Also, on Android Epic made their own app store you had to sideload to download Fortnite.
How can they shut down distribution? If a personal team can install any sourcecode, how could apple block the distribution? Even if they scan for a binary hash, all it takes are some minor modifications to have a different program to install.
Oh, no there are a few of things here, and I think I got slightly confused. There is local signing, which I believe is short term - e.g. your own machine and device, which doesn't require paying anything to apple for a developer membership. This is for on-device testing.
There's also Ad-hoc signing, which I believe is longer-lived, requires a developer account, but has restrictions on how many people you can send it to.
As an enterprise user you can also distribute apps yourself to company employees without going via app store verification, though I think it's much harder to get onto this program https://developer.apple.com/programs/enterprise/ . This is what has occasionally been abused, I don't know how the certificate is revoked centrally though, but it's not for [user] self-compiled code.
It's possible that my knowledge of this is slightly off, because it was a few years since I worked with this stuff.
They can’t shut down distribution of source code, but:
- your typical user wouldn’t know what to do with it
- every install would run only for a limited time (only apps distributed through the App Store have a certificate that doesn’t expire), so those users would have to reinstall the app every week or so.
- it would make it harder for them to make money from it (they would give away the game for free. The in-game store wouldn’t give away stuff, but the source likely would soon be changed to support alternative stores)
> Why is there no app store for personal team apps?
Honestly, for most people the App Store is good enough. For a long, long time, it wasn't good enough, and Apple was much stricter. As it got better, Apple started loosening the restrictions around deploying whatever you want to your device. People didn't really notice, and that's because the App Store was good enough. I suspect this was the game plan all along.
Other people have pointed out that the certificates don't last as long and you need to constantly re-sign your apps. This can be worked around, for sure, but it does mean that if you're out of the house when the cert expires, you cannot use that app until you get home.
It also requires a Mac; Windows or Linux owners of iPhones are out of luck.
Lastly, you lose access to a lot of features; push notifications, IAP, automatic updates, iCloud, etc.
Basically, if Epic wanted to do this, they'd have to let everyone download the code and assets for Fortnite (likely hundreds of GB), then users would have to build it on their devices (which probably would take hours), then install it on their devices, then they would have to pay via Epic and not through iTunes. Whenever they wanted to update Fortnite they'd have to update the source tree and assets and rebuild the app again.
And again, all of this would have to be on a Mac. I know a lot of people who own Macs which don't even have enough disk space to build something like Fortnite, even if they used it for literally nothing else.
TL;DR Epic would have to open-source Fortnite and users would have to jump through irritating and potentially impossible hoops basically every day.
Specifically, in XCode, they can add an Apple ID (any Apple ID) and use that to build on a device.[1] This creates a "personal team"[2] which you can use to test on your devices.
[1] https://help.apple.com/xcode/mac/current/#/devaf282080a [2] https://help.apple.com/xcode/mac/current/#/dev17411c009