19 ms·
Making macOS Apps Uninstallable
- mdmglr 4y agoI recently had to uninstall some apps and it’s common for apps to litter files throughout /Library and ~/Library. The UX from early MacOS days is you can drag/drop the App to the Trash Can to uninstall it. Does MacOS actually clean up the misc. files applications leave at some point?
- alin23 4y agoI never had macOS remove those files automatically when dragging the app to the trash. I still have files left from 4 MacBooks ago (for apps I haven’t installed in a long time) because I’m always migrating the home folder. I guess they’re just expected to be left behind in case you change your mind and want to reinstall the app later. That way you’ll still continue where you left with the same settings. They’re inert files and very small usually, comparative to our current SSD offerings.
- kitsunesoba 4y ago> I guess they’re just expected to be left behind in case you change your mind and want to reinstall the app later. That way you’ll still continue where you left with the same settings. And if apps are well behaved, only writing tiny config files in ~/Library/Preferences/ and the like, it’s not really a problem. The amount of space taken up in that situation was tiny even when OS X 10.0 was brand new and 10GB was a common HDD size. On the other hand if the app pulls an Adobe and leaves tons of relatively heavy crap strewn about, yeah it should probably come with an uninstaller.
- kergonath 4y ago> On the other hand if the app pulls an Adobe and leaves tons of relatively heavy crap strewn about, yeah it should probably come with an uninstaller. Google is guilty of this sort of things as well. Well, it was anyway at some point. I somehow managed to get rid of everything, including their updater that re-installs itself regardless of what you do to remove it. I wish we had more control over sandboxes so we could put some software in solitary confinement with no possibility to write anything anywhere without asking. The new notifications when some software installs a background service is a step in the right direction.
- kitsunesoba 4y ago> I wish we had more control over sandboxes so we could put some software in solitary confinement with no possibility to write anything anywhere without asking. I’d like this a lot as well, but expect it to come with the usual griping from devs about desktop OSes improving their security models and/or giving the user more control over what third party software can do. Anything short of full access to everything seems to be seen as tyranny.
- joshspankit 4y agoThere’s one legitimate dev gripe that Apple has yet to solve properly: Storage of (paid) license data. Apple deals with it for first party apps by tying licenses to the App Store, but for any company who chooses to distribute themselves a true sandbox means they cannot store license data or even worse: they have to store it “out in the open” (which is to say: in a location that’s obvious and where piraters can start to reverse-engineer it). Now, to be clear: I’m very much on the camp of “security through obscurity is not security at all”, but what I am saying is that there’s a significant and legitimate unsolved problem for devs to gripe about when it comes to sandboxes and restrictions.
- kitsunesoba 4y agoWhile I kind of agree I’m increasingly of the opinion that piracy isn’t a battle worth fighting, with pirates mostly consisting of those who wouldn’t have been customers anyway. I have yet to publish any commercial software, but if I were I think I’d go the route of Sublime Text and the git client Fork which as far as I know stop at simple local license verification. If my business were so sensitive to piracy that its existence were threatened by it I’d probably make my main product an online-only subscription instead.
- joshspankit 4y agoI’m increasingly of the same opinion as well, but that choice is up to the companies and developers who make the software and if they decide to implement license verification there’s no way to do that reliably within a sandbox (unless of course it’s online-only, but then you get a whole different issue affecting offline users)
- wkat4242 4y agoYeah all the crap Adobe and Microsoft apps leave in /Library/Application Support/ for example. That's really a trash heap on a Mac.
- justinclift 4y agoAutodesk Fusion 360 does this too. It's "installer" downloads the multi-GB package for it + installs the whole thing into a local user folder which the OS has no knowledge of. Apparently they do this so they can control when it's updated, without having to go through any OS controls. Needless to say, when people "delete" it they often are just deleting a stub rather than the actual multi-GB file set. :(
- aflag 4y agoHaving all those files around from an app I've used long ago feels really untindy to me. Even though, practically, it's ok. It still bothers. Feels like if you dispose of some old stuff by throwing them on the roof. Even though it works, it feels messy.
- mike_hearn 4y agoThe main problem is caches. macOS can actually clear caches when you run low on disk space or uninstall the app, but, only for sandboxed apps.
- gnuj3 4y agoIs there any tool that can find those leftovers and remove then permanently?
- CharlesW 4y agoThe free AppCleaner was mentioned by another reader earlier in the thread, and I've been happy with CleanMyMac X.
- gnuj3 4y agoAppCleaner is no good after you deleted an app by other means and it left crap on the hd tho… as far as I recall CleanMyMac was a paid closed course app?
- deleted 4y ago[deleted]
- jb1991 4y agoYou can still delete all the junk an app leaves behind using this to find it all, then trash them: https://apps.tempel.org/FindAnyFile/ https://apps.tempel.org/FindAnyFile/
- gnuj3 4y agoThank you
- CharlesW 4y ago> …as far as I recall CleanMyMac was a paid closed course app? Yes.
- LoganDark 4y ago> I never had macOS remove those files automatically when dragging the app to the trash. Because it only happens when you use the specific "x" button in Launchpad
- MissTake 4y agoNope, still leaves them behind. I’ve been using AppCleaner (https://freemacsoft.net/appcleaner/ https://freemacsoft.net/appcleaner/) for years now and it’s a real neat (and free) app that’ll do a pretty decent job of cleaning up crud.
- wkat4242 4y agoWell, if it's a really modern application it will leave everything in only one folder in ~/Library/Containers as part of the sandbox. Besides the obvious security advantages of the sandbox this makes cleanup a lot easier too.
- tinglymintyfrsh 4y agoAppZapper isn't free, but it's much more thorough.
- krackers 4y agoBased on https://reddit.com/r/MacOS/comments/qwp9db/i_have_compared_between_appcleaner_vs_appzapper/ https://reddit.com/r/MacOS/comments/qwp9db/i_have_compared_b... seems like AppCleaner is the more thorough one?
- jb1991 4y agoMost thorough would be to investigate every single file on your system for an app using this: https://apps.tempel.org/FindAnyFile/ https://apps.tempel.org/FindAnyFile/ Then just trash them.
- timothevs 4y agoReally? I thought it was abandonware… I used it all the time back in the day, but I thought it went the way of the Disco app.
- krackers 4y agoI miss disco so much. Back from the Delicious Era [1] of apps that were functional yet had character and play. [1] https://arstechnica.com/gadgets/2007/05/the-delicious-generation-strikes-back/ https://arstechnica.com/gadgets/2007/05/the-delicious-genera... I wholly disagree with rogueamoeba's assessment that these were "style over substance". They were dead-simple to use, and you could always disable the smoke if you hated fun. They may not have all the bells and whistles of the bloated 40MB disc burning suite, but if all you wanted to do was burn a linux iso or transfer some songs to stick in your car stereo, this was the go-to tool for the job. https://weblog.rogueamoeba.com/2006/11/06/ https://weblog.rogueamoeba.com/2006/11/06/ Also I find it ironic that rogueamoeba lambasts the "delicious generation" when I think their Piezo app would fit right into it.
- lights0123 4y agoFrom the bottom of the linked article, it did so in this case: 215781406 0x00020200=[removed] /Users/alin/Library/Application Support/Lunar 215781409 0x00010200=[removed] /Users/alin/Library/Preferences/fyi.lunar.Lunar.plist
- AbusiveHNAdmin 4y ago[flagged]
- bitwize 4y agoWait wat So macOS is as shitty as Windows in terms of app install? Anyway, accepted wisdom now is that applications should only run containerized, which would make uninstall as simple as deleting the container.
- klodolph 4y agoIt’s really not. The stuff in ~/Library is caches + preferences + any other data. Deleting an app on macOS, even back in the day, did not delete the preferences. The problems with Windows is that you needed an installer in the first place, and then an uninstaller, and then you couldn’t move an application to a different location. On a Mac, you can still just drag the application to the /Applications folder, or somewhere else, and then delete it later. The user data remains.
- jb1991 4y agoLots of apps can litter junk all through macOS that goes well beyond the ~/Library folder. To totally rid yourself of everything, just manually search for the app name using FindAnyFile [0] and trash them. [0] https://apps.tempel.org/FindAnyFile/ https://apps.tempel.org/FindAnyFile/
- joshspankit 4y agoI mean, it almost is. Though, it depends on the software of course. I’ve seen some bad-faith macOS installs that easily compete with bad-faith Windows installs.
- tzhenghao 4y agoWhat bothers me even more is the fact that nowadays newly installed apps even need to "ask user for permission to access the {Documents, Downloads, Desktop, ...} folders". This is especially true when using a new terminal emulator like iTerm or Alacritty
- joshspankit 4y agoIf you mean it bothers you because you just want it to work then you’re arguing for apps to be able to litter and scrape however they want and I disagree. If it bothers you because good-faith applications are asking for permission as they’re supposed to but bad-faith ones are getting around those permissions and doing what they want anyway, I agree.
- AbusiveHNAdmin 4y ago[flagged]
- andirk 4y agoYou'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-products/ https://stuffwhitepeoplelike.com/2008/01/30/39-apple-product... Sent from my MacBook Pro
- AbusiveHNAdmin 4y agoIt 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.
- eviks 4y agoThe 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
- rawTruthHurts 4y agoBut we were not lied to in that regard.
- eviks 4y ago
- steve1977 4y agoThe UX from early Mac OS X days would actually be to either have a self-reliant app bundle that you can simply trash or a pkg-based installer which would leave a so called receipt and ideally an uninstaller. A UX for a more civilized age…
- daneel_w 4y ago>"I recently had to uninstall some apps and it’s common for apps to litter files throughout /Library and ~/Library." For ~/Library your application may often put its preferences in ~/Library/Preferences/ and partly in ~/Library/Application\ Support/. That's entirely normal and expected. But, no, for /Library that's absolutely not common. Very few applications run as an actual "installer" and even fewer of those request admin privileges. But it is annoying those few times some software actually does it. At the least you can always tidy it up yourself on the command line.
- ok_computer 4y agoquestion:has anyone succeeded in uninstalling kite (python autocomplete for spyder) at all locations. I was tricked into selecting to install it one time installing anaconda/spyder. I’ve since removed all of that including anaconda and followed the now scrubbed uninstall instructions on their (defunct kite’s) website. However a .kite folder keeps showing up in my ~/ I’ve deleted tons of times and searched thru /library and ~/library I resorted to locking .kite hoping that if some hidden process were using it it won’t have write access anymore. But admittedly I have no idea what’s creating this dir and the reason for it or if I defeated it by locking that .kite folder down. Thx
- programmarchy 4y agoThere’s probably an assistant program starting at login. Maybe check in ~/Library/LaunchAgents and /Library/LaunchAgents
- pnm45678 4y ago> Well, looks like we got a working uninstaller with a good user experience for free. Yes, but the downside is that you're now relying on an unstable interface (as I understand it, this behaviour is not documented as a contract anywhere). Apple would be free to break you at any time.
- marcellus23 4y agoTrue, but the worst that could reasonably happen is that the "X" button would go away and it would be just like every other non-MAS app.
- VWWHFSfQ 4y agoThe 2nd worst thing would be for apple to decide they don't like apps pretending to come from the app store and just block them from installing at all
- guessmyname 4y agoThe article doesn’t explain how to install an application that can be uninstalled using the "X" button in the Mac Apple Store (MAS). Instead, it explains how to activate the button in apps that are already installed. So, your theory that Apple might eventually prevent the installation of an app is not relevant here, as the article isn’t discussing that at all. However, it’s possible that Apple could update the verification process for the MAS app to check for an empty "receipt" file and then prevent the application from starting until the user deletes that file. This seems like a reasonable expectation to me.
- throwaway892238 4y agoThe thing I hate more than anything else about technology is when people make things that are intentionally shitty, for no other reason than they want it to be shitty. "Hello billion dollar company, I would like a way to install and uninstall my software in your operating system." "No." "Wh.... huh? Please?" "Pay us money and go through our app store." "Um....why? No? Please? Can't you just let me make software and give it to users, without going through you?" "No." "Why not?" "We don't like it when you do that." "So?" "So you only get to do what we say, how we say." "Why?" "It makes us happy." "And what about the users' happiness?" *laughs in dollar bills*
- swatcoder 4y agoMakes a product for consumers who want it, knowing that other successful and widely available products exist for other consumers. Apple’s choices may not be what everyone wants, but they’re not without upsides for those that do.
- colonwqbang 4y agoWhat is your point, really? What kind of "upside" for Lunar users are you alluding to?
- naikrovek 4y agoyou know, when you and the throwaway account at the top of this thread talk in the ways you have here, you make it extremely easy to simply dismiss your opinions as those of a crazy crackpot. challenging opinions and "randomly" putting things in quotes to make them appear "fabricated" are not how you win people to your side, or even trigger them to pause and think for a moment. this is how you encourage others to develop a strong aversion to anyone talking like you or anyone having the opinion you have. with the most positive and pure tone possible: be constructive or be quiet; you're severely hurting your own cause.
- smoldesu 4y ago
- PaulDavisThe1st 4y agoUninstallable is nice, but how about something on making apps not in the app store trivially installable without developers paying Apple a ransom fee? Oh that's right, we can't control that, just have to pay the tax.
- deleted 4y ago[deleted]
- tzs 4y ago> Uninstallable is nice, but how about something on making apps not in the app store trivially installable without developers paying Apple a ransom fee? Isn't that what the article shows how to do?
- tempodox 4y agoNo, it doesn't. It only shows how your app's data can be deleted if you uninstall your app in a certain way. The scary warnings for apps that aren't notarized are still there.
- fastball 4y agoDownload > Drag into /Applications isn't easy enough for you?
- rswail 4y agoIf the app isn't signed (that's the so-called "developer tax", because it costs you USD100/year), then its: 1. Drag into Applications, try to open it, get warning. 2. Open System Preferences > Security & Privacy > General, click on lock, enter admin password, allow the app to be opened. So it's not as easy as it used to be.
- oefrha 4y agoPretty sure it’s still right click open -> open. Security preferences override only happens for double click.
- mrtesthah 4y agoI was disappointed by not finding a tutorial on how to create an app that no user could ever install successfully.
- phs318u 4y agoThat's exactly what I thought this would be. How to install an app that _doesn't_ have the "X" in jiggle mode.
- Mordisquitos 4y agoSame here. It made me realise that un- is the wrong prefix for what we mean by uninstall. It should probably be de-, as in "I deinstalled the program" or "This app is deinstallable".
- yardstick 4y agoThis app is unremovable. Or maybe this app cannot be removed?
- foldr 4y agoIt’s not the wrong prefix. It’s the same ‘un’ you get in e.g. ‘unlock’ or ‘untie’. The ambiguity of words like ‘unlockable’ or ‘untieable’ is a standard exercise for morphological tree drawing in Linguistics 101 ([un [lock able]] or [[un lock] able]). The existence of structural ambiguities in words isn’t really any more disturbing or problematic than the existence of structural ambiguities in sentences (e.g. ‘John saw the man with a telescope’). (Technically, ‘unlockable’, ‘uninstallable’ etc. don’t exemplify pure structural ambiguities because the ‘un’ prefix is used in two different senses, but the two meanings do have different structures.)
- Hackbraten 4y agoLast time I checked, you could use `brew uninstall --cask --force --zap` to uninstall an app thoroughly. That would work reliably for me, even for installs not actually managed by Homebrew.
- michelb 4y agoDoes this also remove user preferences and config files?
- Hackbraten 4y agoYes, it does. But not user-generated data files.
- franky47 4y agoSomehow I misread the title as making apps impossible to remove, glad to see it was the opposite. It's the second time I read about Lunar, and my curiosity led me to their impressive monitor database: https://db.lunar.fyi/ https://db.lunar.fyi/
- jraph 4y ago> Somehow I misread the title as making apps impossible to remove Weird, so did I! Why!? After reading it again, there are still an ambiguity though: impossible to install, or that you can uninstall?
- Mordisquitos 4y agoIf only we used the de- prefix rather than un- we would be safer from ambiguities: "I saw the app was deinstallable so I deinstalled it, but now I cannot install it back as it is totally uninstallable!"
- deleted 4y ago[deleted]
- neffo 4y agoFeel free to smoke sir, the Hindenburg is completely inflammable.
- franky47 4y agoIn French, "inflammable" means "that can catch fire" (flammable in English), which leads to the monstrous opposite: ininflammable.
- synchronizing 4y agoBeen using AppCleaner[0] with great success for years now. [0] https://freemacsoft.net/appcleaner/ https://freemacsoft.net/appcleaner/
- jb1991 4y agoThere's also this, which lets you track down all files related to an app anywhere on the system and then manually trash them: https://apps.tempel.org/FindAnyFile/ https://apps.tempel.org/FindAnyFile/ I used it recently get rid of a bunch of Wacom garbage that was littered throughout my system and causing the mac to crash.
- Razengan 4y agoThis actually points to an underlying weakness of the Unix/macOS permissions system: There is no concept of apps. By now the filesystem permissions hierarchy really should be extended into Group → User → App. You can see the half-baked workarounds many operating systems use like controlling access to entire folders like Documents, Downloads, Photos etc. Why not just make it fine-grained and let us permit and deny apps' access to individual files, and see which app created which file?
- KingLancelot 4y agoSounds similar to Fuchsia and how it’s filesystem access is based on capabilities, unforgeable tokens assigned to each process
- ambersahdev 4y agoThat's neat! Recently I've been looking for resources on getting a py2app MacOS app notarized by Apple but haven't been able to find any precedent. Would love to see a tutorial for that too since you guys seems to be domain experts in this
- detrites 4y agoWhy are an applications files physically moved elsewhere in the first place? Simply leave everything in the app bundle, and put symlinks for anything the OS is expecting elsewhere. Cleaning up app deletion would then be pruning dead symlinks. Such a system could also potentially be enforced. Is it a symlink? If "yes" allow the write to ~/Library or wherever else. If not, deny it. Genuine question: is there some reason not to do this?
- alin23 4y agoThose aren’t app files, they are user configuration files. They can’t be created inside the app bundle because the app is signed, and any modification will invalidate the signature. There’s also the matter of permissions, some apps may be installed by the admin, but the app might not run with admin permissions for some users.
- angulardragon03 4y agoAlso having your app data stored within a bundle that (during updates) is literally just removed and replaced would lead to data loss. I don’t think there is any system that actually stores app data within/next to the binary itself.
- stiGGG 4y agoThat was quite common during the Windows 9x days, leading to that long period of time of problems later under XP with old apps only running under an admin account.
- detrites 4y agoIn my experience there are both a users config files and an applications support files strewn all over the place with abandon. Maybe I wasn't clear, I'm suggesting distinguishing out-of-bundle application files by making them symlinks: > Why are an applications files physically moved elsewhere in the first place?
- 4y ago
- frisia 4y agoMaybe just me but I think the title is worth changing to "Enabling macOS Apps To Be Uninstalled" to prevent ambiguity
- deleted 4y ago[deleted]
- deleted 4y ago[deleted]
- idianal 4y agoAs mentioned elsewhere, the trusted workaround is AppCleaner (https://freemacsoft.net/appcleaner/ https://freemacsoft.net/appcleaner/). I just wish it was open source. An attempt at an open source AppCleaner, I worked on a script, called zap (https://github.com/idianal/zap https://github.com/idianal/zap), that aims to replicate much of the same functionality (without a GUI). The benefit for users is they can see exactly what it is doing on their computer. Here I outline the limitations: https://idian.io/posts/2022/writing-an-app-uninstaller-for-macos/ https://idian.io/posts/2022/writing-an-app-uninstaller-for-m....