News for hackers. Stuff that matters.
Re:Making macOS Apps Uninstallable by AbusiveHNAdmin on Saturday February 18, 2023 @12:17AM (#34844149)
No. That's the big lie pushed by Apple apologists for 20 years: "You just drag apps to the trash, and YIPPEE! They're all gone!"

These are the same apologists that mocked Windows for needing device drivers, as if the Mac didn't. Since Windows 95, when you plug a new printer into a Windows machine, it detects it and offers to look for a driver. What did OS X do for, oh, half its existence? Nothing. You'd plug a peripheral in and nothing would happen. It was up to you to scrounge around for a driver disk and explore it for an installer. THAT one, at least, Apple has remedied.

But to go 20+ years since the OS X transition without an uninstaller is absurd.

And sure enough one of said apologists down-modded and FLAGGED these simple observations. Then ran back to Reddit, I hope.

Re:Making macOS Apps Uninstallable by eviks on Saturday February 18, 2023 @12:39AM (#34844250)
The Windows apologists are non the wiser :). Windows still has no full uninstaller that can clean the registry droppings many apps leave and other files, requiring to use specialized apps for that. And sometimes it would also fail to uninstall the binary. And Windows bizarely needs to retain the huge installers, so that part is strictly worse vs Mac
Re:Making macOS Apps Uninstallable by throwaway290 on Saturday February 18, 2023 @03:23AM (#34845091)
I think we can choose between either full managed app store mode like on ios (no low-level control but full automatic uninstallation + synced settings and such) or Unix-style where you have full control.

Something inbetween the two is worse, you get installers and uninstallers that are half-broken because they can never assume stuff about your system and just be broken but you never know exactly what they're doing.

Windows and macOS are both inbetween to various degrees, but I think macOS is a bit closer to Unix style (excluding App Store apps).

Re:Making macOS Apps Uninstallable by rawTruthHurts on Saturday February 18, 2023 @07:33AM (#34846435)
But we were not lied to in that regard.
Re:Making macOS Apps Uninstallable by eviks on Sunday February 19, 2023 @02:56AM (#34855495)
The lie is that "uninstall" uninstalls when in reality it just uninstalls*
Re:Making macOS Apps Uninstallable by mike_hearn on Saturday February 18, 2023 @10:18AM (#34847495)
In fairness to Microsoft, that's only true for apps that don't use the official packaging format. Official packaging format? Yep, if you distribute your app as an MSIX file then you get:

• Integrated automatic uninstall (which is fast).

• Automatic online updates.

• Apps have their registry and AppData writes redirected to a private location, which Windows can then clean up. It's a bit like the macOS app sandbox but the app isn't actually sandboxed, it's much lighter than that and there only for clean uninstalls.

• No need to retain downloaded packages or installers.

• If you use the .appinstaller feature, only the parts of the package that the user doesn't already have are downloaded so apps that use big runtimes (electron, jvm, flutter etc) can turn into small downloads if the user already has such an app.

• Don't need admin rights to install.

• Integration with Windows network admin tools. MSIX is declarative so Windows can do things like make apps appear without them being actually installed.

• There's a tool that monitors other installers and converts them into MSIX files.

So Windows has solutions for a lot of these problems. Unfortunately developers don't know about it and that's partly because Windows has a lot of bugs, especially in Windows 10 (which hasn't been receiving bug backports for a long time now). The best way to get these features is to use Conveyor which is a tool that abstracts you from the packaging tech and automatically works around the bugs (Disclosure: I wrote Conveyor). It also extends it with other useful features like checking for and automatically applying updates every time the app is run (if you want that):

https://hydraulic.software/

Re:Making macOS Apps Uninstallable by eviks on Sunday February 19, 2023 @02:56AM (#34855487)
How is this fair at all? 1. This is "only true" for almost all the apps 2. A much better alternative without that waste already exists in 3rd-party apps, so no new packaging format is needed to fix it 3. Is this new shiny toy MSIX the one that doesn't even allow changing installation path?
Re:Making macOS Apps Uninstallable by mike_hearn on Sunday February 19, 2023 @08:15AM (#34857320)
The problems you're describing are technically problems of apps, not really problems of Windows (any more). Yes arguably the line is blurred, you can say this is a pedantic distinction because Windows = the apps that people use. But the tech is there.

MSIX indeed picks the install path for you but very few users want to change it these days. Chrome installer doesn't let you pick either.

[dead]
Re:Making macOS Apps Uninstallable by mike_hearn on Saturday February 25, 2023 @06:58AM (#34935975)
Your post went dead for some reason, but that seemed unfair so I vouched for you and upvoted it. We may not fully agree on this, but your discussion is civilized and should not have been flagged.
Re:Making macOS Apps Uninstallable by andirk on Saturday February 18, 2023 @12:30AM (#34844210)
You're not supposed to speak unkind of Apple products [0] or its peripherals North Face, Patagonia.

How is any operating system supposed to log everything an application does and then remove it? If it's allowed to add data beyond its birth directory, would not an "uninstaller" only remove whatever the devs chose to and not 100% of its effect on the OS?

[0] https://stuffwhitepeoplelike.com/2008/01/30/39-apple-product...

Sent from my MacBook Pro

Re:Making macOS Apps Uninstallable by AbusiveHNAdmin on Saturday February 18, 2023 @02:56PM (#34850431)
It isn't supposed to, of course. But there should be a standard facility offered by the OS that well-behaved apps can use to install components, through which the OS WILL log each of them and be able to remove them later.

The main challenge is shared libraries; these are hard to delete reliably, even if the installer keeps a "use count" that it can increment and decrement. Just one non-compliant dependency will be broken if you remove all the compliant ones and a lib it needs gets blown away.

Re:Making macOS Apps Uninstallable by daneel_w on Saturday February 18, 2023 @07:51AM (#34846529)
I'll help you out by offering this common scenario:

You have an application which is a normal app bundle. It doesn't update itself because, well, few developers have bothered taking this route, so you download a new version of it and you throw the old one in the trash. Now all of your preferences are gone and you have to set everything up again.

That would not be a pleasant user experience, would it. Dropping the bundle in the trash doesn't remove your preferences because it would be an idiotic thing to do.

Re:Making macOS Apps Uninstallable by AbusiveHNAdmin on Saturday February 18, 2023 @02:46PM (#34850337)
I agree. How is that "helping me out?" I never said dragging stuff to the trash should do that. I said there should be an UNINSTALLER, which is the whole topic at hand here.
Re:Making macOS Apps Uninstallable by daneel_w on Saturday February 18, 2023 @03:18PM (#34850628)
It helped you understand why dropping app bundles in the trash does not clean out per-user property lists.

App bundles are never installed anywhere as they are self-contained products, hence they cannot be uninstalled. For applications that actually come in the form of package installers which may place files in "annoying" locations like /usr/local/, you also get the functionality of uninstalling the software, because these packages contain manifests describing what files go in what locations.

Re:Making macOS Apps Uninstallable by AbusiveHNAdmin on Sunday February 19, 2023 @03:35AM (#34855663)
Why are you telling ME this? I never said trashing app bundles clears out property collections or settings.

You must be replying to the wrong person.