Honest question - what do iOS users do in such situations? I'm using Android and we can always install things from outside the store, or even from alternative stores (eg. F-Droid). Is there any similar solution? If the app is open-source, can you at least build it yourself and sideload it as if you are the developer and you're testing your app? What solutions are there?
It is possible to sideload apps on iOS, it just requires jumping through hoops that you don’t have on Android. Apple allows sideloading of apps signed by the same Apple account that you’re signed into on your iDevice.
Since this is really intended to make developing iOS apps more accessible, it requires resigning or rebuilding apps. Since iDOS is open source, that should be no problem here - you can compile and install your own copy, likely just by loading the upstream project in Xcode and deploying it your iDevice like app developers do. A usability problem is that apps installed this way are only runnable for a week [0], at which point the signature must be refreshed or iOS will refuse to open the app.
AltStore [1] is a project that streamlines this ordeal as much as possible. It’s an alternate app store that allows you to install a bunch of open source apps not allowed in the app store (e.g. apps using permissions that would be rejected, or game console emulators). It also comes with a server component that uses Apple’s frameworks on Mac/Windows to refresh those apps’ validity on iDevices on the same network. If you regularly connect your iDevice to a network with an AltServer of your own, the apps should continue to work.
It’s certainly not pretty, and very far removed from fare more open Android devices, but workarounds to run your own software on iDevices do exist. There’s an entire subreddit, r/sideloaded, dedicated to this apparently mostly for piracy purposes.
[0]: Unless you pay for the Apple Developer Program, which has much longer limits. This limit is for free accounts.
An additional limitation is that you can only have three such applications installed at a time. You also aren't going to be able to get access to functionality like push notifications (which might be obvious) or network extensions (which might not be: you have to have a paid developer account to develop/install a custom VPN for iOS; I find this limitation particularly frustrating, as it seems to mostly serve the purpose of helping authoritarian governments, and it isn't like Android has such a restriction so we know it isn't "par for the course": they are going above and beyond here).
They rationalize no longer being able to do something they used to be able to do, for no real practical or technical reason, as actually being a good thing.
Hence the newspeak of "sideloading" being accepted as opposed to recognizing it as a frankly outrageous and capricious policy designed to encourage an unknowing and comatose userbase.
I don't rationalise it as a good thing. I think there are many things to consider when buying a phone and this is just one of them.
Lately Apple started mandating that apps like telegram or discord must make it impossible for iPhone users to see nsfw content, which has tipped the balance towards android for me. For the first time in many years I'm using an Android phone. But as I said, one of all the factors to consider.
It’s a bit more nuanced than that - NSFW content can still be shown but the app needs to express a 17+ age rating on the App Store. That’s why apps like the Reddit client Apollo[1] and Google Chrome[2] are 17+.
You can sideload the app yourself - but the account can only have 3 devices, and the app expires and stops running weekly for a free account or every 90 days (iirc - it's been awhile since I entered this particular dumpster fire) for a paid account. This is to prevent you as a developer from using your provisioning profile to backdoor-distribute software to end-users.
The largest loophole still is probably Enterprise Distribution, which allows high-limits (long time, many devices) signing associated with an Enterprise account.
Gave up. I was wishing WWDC21 bring something like this due the M1 iPads but all I got was a refresh on Playgrounds... It's frustrating but I'm still inside the garden, and getting more tired by the day.
Some of them are children. Some need or prefer Apple's locked in stuff (iMessage.) Not to mention Android is a slow burning trash fire.
I've seen so many ignorant comments like this about iOS lately I'm on the fence about deleting my HN account. I think I'd be happier, and all the people here who keep defending Apple's abuse would be happier.
This assumes that users understand the implications of the garden they're buying into. For many there may be a strong bandwagon effect, and they don't fully grasp what they are losing.
I have an iPhone simply to facetime with my parents, who refuse to talk to anyone with a green bubble. You can't make this up. If I could use iMessage on any other device, I wouldn't have an iPhone. Apple knows this, and it probably scares the shit out of them.
What I don't understand is why so many devs choose to accept Apple's rules. These devs know full well that they will likely be f***** over like this in the end. Yet they still give Apple their business.
Much higher rate of sales (apps and IAP) and subscriptions than Android. Not sure how the ad market looks (I've not worked on ad-supported apps) but wouldn't be surprised if those—at least in some categories—also pay so much higher that they're more lucrative on iOS, too, despite the smaller user-base.
I think I largely understand the implications of the garden I chose, and I doubt there will be much anguish among my less technical family/friends about their loss when they fully grasp that they will never be able to run a DOS emulator on their iPhones.
The only reason we're talking about something as obscure as DOS is because it wasn't threatening. Now that people have raised awareness of the inconstency they're blocking it, like many other general purpose emulators.
Pretty much what you have just described, one needs to pay for the yearly premium of the iOS developer programme in order to run custom code on your own device. Bear in mind that iOS apps are compiled in Xcode so one also needs to own hardware that runs OSX.
There are also people offering to sign you app with an enterprise certificate for a fee in the more dodgy corners of the internet but Apple is known to crack down on those once in a while as this obviously goes outside their ToS.
If the app's open-source, you can build it yourself, with restrictions on how long the app will function on your device before you have to reinstall it (one year IIRC for paid developer accounts, but only 7 days if you're not enrolled in the paid program).
If the app isn't open-source, you don't have any great options. Hypothetically, compiled apps from other developers can be re-signed just like apps you build yourself (see AltStore [1], which uses this technique), but those apps are still time-bombed and have to be periodically refreshed. The barrier to entry means you don't see a ton of apps around that do this; if something can't be compliant with App Store rules, it generally doesn't get made on iOS.
(There's also jailbreaking, and there used to be a decently-large community of developers building applications and tweaks for jailbroken iOS devices. That's gotten smaller both as Apple's made jailbreaking more difficult to maintain, and as new features in iOS have made much of the functionality people used to jailbreak for redundant.)
You can sign 7 apps a week for your own device with the tethered non-dev Apple ID. The certificates expire a week after, so you need to resign those 7 apps every week or they will stop working.
All of the "alternative" stores and distribution methods work with this mechanism, there is no better way and it is completely at Apple's whims.
Really, most interested users probably gave up at this point, looking at the decaying Jailbreak ecosystem.
The target audience for iOS devices does not care about running dos emulators with their custom binaries. Believe it or not, many people are okay with boundaries, especially when the promised and mostly achieved return is a reasonably stable and secure experience.
I've had a couple of apps disappear (one I know Apple removed, the others I think just suffered from bit rot). I guess it's the same as if my grocery store stops stocking some brand I buy. I'm bummed about it, but life goes on.
Even just for coding, that sounds awful to me. iOS users bought a mobile device, and particularly if they're on an iPad Pro, a mobile device with a really good processor. For me, part of that would be being able to treat it like a mobile device, that it should keep working if I drive through a tunnel, that I should be able to use it on the go.
Hard for me to wrap my head around people being satisfied with "ignore that you have a well-built device with interesting sensors in front of you, and instead just use it as a thin client to another functioning computer."
There are cheaper thin clients out there than an iOS device if someone is OK ignoring their native hardware, doing all of their programming through a terminal, and having functionality break if their device goes offline.
I agree with you 100% - the situation sucks and I hope that these congressional hearings related to Apple being uncompetitive result in them being forced to allow multiple app stores and especially allow you to use a... mobile computing device for.... mobile computing. But I'm not optimistic.
This argument reminds me why I loved windows phone so much. iPhones are computing devices that have a phone app while windows phone was a phone that happened to be a computing device.
My windows phone would get unplugged at 9am, and I’d party until the sun came up. Pretty much everything was disabled by then (by the battery saver), but I could still call a cab. Everyone’s iPhone was an expensive paperweight until someone located a charger.
I do agree with your statement today. iPhones have gotten markedly better at being a phone first and computing device second. It’s still got a ways to go, but my phone isn’t dead at 2am with battery saver on.
That is just not true, though. If Apple allowed different stores, then software would migrate to those different stores for various reasons, but probably because they had less restrictions. That would force you to install those less secure stores to use that software, and you would give up the security you gain from Apple taking a hard line on many kinds of bad behaviour on their own store.
But that software is clearly stuff you don't want and aren't interested in since it breaks Apple's restrictions so what's the problem? Just learn to live without it just like you've learned to live without emulators, IDEs, etc. in the App Store already.
Users that want the choice can choose. Devs that want the choice can choose. You can stay in your walled garden. And considering the uptake of alternate app stores on Android this seems like FUD to me.
Whether software offers something I want and whether software does shady things behind the scenes are often completely separate things. If it were allowed, I am sure a lot of the apps I use today would do shadier things. But it's not allowed, so they can't.
If they had the option of going to a less restrictive store, they probably would, and they would do things I am not happy with there. That would be a loss for me.
> If Apple allowed different stores, then software would migrate to those different stores… That would force you to install those less secure stores to use that software…
I think you’re underestimating the power of defaults. App developers know that the vast majority of users will not install an alternative app store, even if the platform allows them to. For proof, see the Android app ecosystem. There has been no migration from Google’s Play Store. There isn’t even a hint of store fragmentation. What you see is: 1) some OEMs run their own stores, which mostly rehost apps from Google’s store. These stores are not meant to be installed by arbitrary Android devices, so there is no chance that a user might feel compelled to install the store on their device. 2) F-Droid exists to host FOSS apps, some of which violate some asinine Google policy and as such are exclusive, but most of which are also available on the Play Store.
Basically, we have strong real-world evidence that allowing sideloading does not create app store fragmentation. If you want to argue against sideloading from a security standpoint, you’d be better served with the “sideloading allows an abusive spouse to install a keylogger/tracker on their partner’s phone” narrative.
Yeah, calling the iPad a PC is very short sighted by Apple.
Where is the next generation of developers going to come from, if they grow up on iPads?
But I feel the same towards Apples stance on server hardware, which they discontinued over a decade ago: Even if servers don't make a sizeable profit on their own, they help ensure that developers can build large scale stuff inside the apple ecosystem.
Yet, that hasn't really been the hindrance I feel it ought to have been.
> Yeah, calling the iPad a PC is very short sighted by Apple.
It's only shortsighted because they lock it down. It's got the same M1 hardware (if slightly less powerfull IIRC), and you can get an official keyboard+trackpad (and many third party ones), so the only thing that really keeps it from being a PC is their software installation policy that locks what can be run.[1]
1: Well, and also their policy of only allowing iOS to run on the hardware. This would be less of an issue if you could throw Linux, or even just Android on them. I'm sure Microsoft would be happy to ship an M1 ARM version of windows if they had hardware that would allow it to run.