gpt4 book ai didi

swift - 苹果系统。用管理员权限替换共享文件夹中的应用程序

转载 作者:行者123 更新时间:2023-11-30 12:02:42 26 4
gpt4 key购买 nike

我们的应用程序存储在/Users/Shared/OurAppData/OurApp.app 中。原因之一是强制用户使用启动器。

但是,现在我们遇到了问题,当我们想通过启动器更新我们的应用程序时(我们下载 zip 文件,解压该文件,然后想要用新的应用程序替换我们的应用程序)

try FileManager.default.replaceItemAt(URL(fileURLWithPath : Paths.ourAppPath) , withItemAt: extractedURL)

"You don’t have permission to save the file “OurApp” in the folder “ OurApp Data”."

我的问题是 - 有没有办法处理这种情况?我想提示用户输入登录名和密码以获得权限并替换该文件的最佳解决方案?我猜这是 Swift 范围之外的东西,可能是 AppleScript,甚至是 .sh。

请帮忙。

谢谢

最佳答案

我建议看看 Sparkle更新应用程序的框架。

Sparkle 负责检查更新是否可用、下载更新、在需要时询问管理员密码以及在更新后清理下载的文件。

对于大多数应用程序来说,只需将新版本存档为 zip 存档就足够了。

但也可以使用主应用程序包外部的辅助应用程序或代理来更新应用程序。

这可以通过安装程序包*.pkg来完成。如果您熟悉 Sparkle,“自动安装”提到 here只会显示 Sparkle UI。在后台,它将使用 macOS 的内置命令行安装程序 /usr/sbin/installer

在大多数情况下,使用与面向用户的安装程序和更新相同的 .pkg 是有意义的,但这不是必需的。

如果您的应用程序是沙盒,则该框架有几个分支。

关于swift - 苹果系统。用管理员权限替换共享文件夹中的应用程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47017727/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com