Beim Löschen ist auch immer zu bedenken, dass Leute evtl. die App
woanders hingelegt haben, z.B. Desktop, oder gar einen Symlink aus dem
Programme-Ordner woanders hin angelegt haben. Daher lösche auf keinen
Fall die App mit der Delete-Operation, sondern benutze z.B. einen
AppleScript-Befehl, um den Finder zu bitten, die alte App in den
Papierkorb zu legen. Denn sonst löscht du evtl. irgendwas anders und
dann ist der Schaden ggf. gross.

Auch kann der User mehrere Kopien der App haben. Wenn der User die
neue Version startet, woher soll die neue Version dann wissen, wo die
alte App zu finden ist? Sicher nicht immer im Apps-Ordner!

Am Sichersten ist es wohl, wenn die _alte_ App rausfindet, wo sie
liegt (App.ExecutablePath.Parent.Parent müßte gehen), und dann ein
Shell-Script startet und dem Script mitteilt, wo die App liegt - das
Shell-Script löscht dann die alte App und entpackt die neue an die
SELBE Stelle. In dem Fall ist es relativ sicher, dass da nix Anderes
gelöscht wird. Aber mache das nur für den .app-Ordner! Wenn du deine
App aber z.B. als Ordner, der die App sowie andere Files enthält,
auslieferst, dann komme bloss nicht auf die Idee, den gesamten Ordner
zu ersetzen, denn Anwender tun dann oft ihre Daten auch in diesem
Ordner ablegen, und die willst du sicher nicht mit löschen. Also
tunlichst nur den .app-Ordner komplett löschen, aber keine Ordner, die
drüberliegend sind, selbst wenn du die selbst damals angelegt hast.

Thomas

Antwort per Email an