• 5 Posts
  • 10 Comments
Joined 1 year ago
cake
Cake day: June 14th, 2023

help-circle




  • It has permission via certificates and writes/copies either via bin commands (cp) or the user does it (drag app to applications). Applications don’t own files within macOS. It’s UNIX methodology where it’s a user/group/everyone situation. Often files will be owned by “system” or the logged in user that installs them. The OS would need to snapshot what is done during installation (which is actually done by packaging utilities like composer) but this is also prone to error because it tracks all changes during installation, so if you’re modifying files with other apps while the current installer is running in the background it will capture that. And I think you’d be surprised how many apps keep files in non-traditional places.

    It’s just not as straight-forward as you think it is and no OS really does this will. Windows uninstaller often misses a lot of registry keys and programdata/appdata files. Linux will only uninstall what it install during the apt/dnf/whatever process. Even iOS leaves things behind like folders in Files.


  • The OS doesn’t create the files, the application does. The OS would need a way to track what’s being created throughout the lifecycle of the application on the device. For example, at install the app may just put the .app bundle in /Applications and then complete. During first startup, licensing, saving, customization, and at other various indeterminate points the application might create preference files, directories/files in /Library/Application Support, etc. macOS does log things but those get rotated, if you just keep infinite logs you end up using up a ton of space.

    Apple could try and require that every Application provide a manifest of where it may put all files, but I don’t really now how they’d enforce it and this is still subject to error and may result in the wrong thing being deleted. Also, keep in mind there are some shared folders and file between apps within the same suite. For example, Autodesk puts a lot of things from various apps into /Application Support/Autodesk.

    Another thought is, sometimes you don’t want it to delete all associated files created. Often applications create a save directory in /Documents. I think SPSS or Stata might do this (haven’t work with them for a bit). So if /Documents/Stata has all your work and some automated Apple uninstaller removes it, that isn’t ideal. It may even be disadvantageous to remove a plist file. For example if you’re installing an old version of an app for a new one, it may use the same plist with your settings so you don’t have to reconfigure the app. There’s just a lot that can go wrong if you automate this process for what is often relatively little gain.




  • The problem is AppCleaner is effectively guessing based on file name (and potentially other metadata) what to get rid of, you have to use your brain to check the list of what it is proposing to delete (hence why they show it to you and make you check the additional boxes). Someone who is actively seeking out the app to do something like this is more likely to check, but if it was a default functionality from Apple, many users would just ignore it and delete everything, even if it’s something they’d want to keep. Apple’s ethos of how they view users is also not predisposed to this.

    It’s also notable that many things get left behind even after unintsalling apps in Windows. Sometimes the manifest just doesn’t encompass everything an app will spit out during its existence on your device.