Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/swift/19.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Swift 应用程序的静默安装_Swift_Macos_Cocoa_Silent Installer - Fatal编程技术网

Swift 应用程序的静默安装

Swift 应用程序的静默安装,swift,macos,cocoa,silent-installer,Swift,Macos,Cocoa,Silent Installer,我有一个名为myapp.app的应用程序。它已签名,启动时不提示任何警告 目标是让安装程序以静默方式安装并启动它。 应在命令行中触发此安装程序 我设想的解决方案是创建一个搭载myapp的install.app 执行“open/Volumes/myapp/install.app” installer.app将myapp复制到~/Applications并运行它 这现实吗 如果是,那么创建cocoa命令行应用程序是一种方法吗 我能否将myapp.app复制到/Applications?(到目前为止,

我有一个名为myapp.app的应用程序。它已签名,启动时不提示任何警告

目标是让安装程序以静默方式安装并启动它。 应在命令行中触发此安装程序

我设想的解决方案是创建一个搭载myapp的install.app

执行“open/Volumes/myapp/install.app”

installer.app将myapp复制到~/Applications并运行它

这现实吗

如果是,那么创建cocoa命令行应用程序是一种方法吗

我能否将myapp.app复制到/Applications?(到目前为止,我所有使用swift 3的尝试都失败了)

[编辑] 我能够将捆绑应用程序复制到~/应用程序/

let sourcePath = Bundle.main.path(forResource: "myapp", ofType: "app")
if (sourcePath == nil) {
    print("myapp.app was not found");
    return;
}

let target = FileManager.default.urls(for: .applicationDirectory, in: .userDomainMask).first
let target_path = target?.appendingPathComponent("myapp.app").path
do {
    try FileManager.default.copyItem(atPath: sourcePath!, toPath: target_path!)
} catch let error {
    print(error.localizedDescription)
}
现在,我希望推出它(如果可能的话,使用swift 3)

[编辑2]它是如何启动的

let run_app = Process()
run_app.launchPath = "/usr/bin/open"
run_app.arguments = [target_path!]
run_app.launch()
如果有更好的办法,请告诉我。

您有两种选择:

  • 将应用程序作为安装应用程序的包(
    .pkg
    )分发

  • 在首次启动时提示用户将应用程序移动到“应用程序”文件夹。这方面有现成的框架:

  • 其他任何事情都是糟糕的用户体验,用户可能会问,为什么您在未经许可的情况下执行操作


    此外,如果您的应用程序是从互联网下载的,Gatekeeper将始终显示警告。即使是已签名的应用程序。

    我也不确定是否可以“静默”实现。我认为用户需要接受这一点。为什么不将应用程序复制到您想要的位置,然后使用终端从那里启动它?@oa我需要的是创建一个程序,将我的应用程序复制到/应用程序并启动它。此程序可以像其他安装程序一样由其他程序启动。应在何时复制并启动应用程序?在每个用户登录时,每天一次,…@oa-只为登录用户安装和启动一次实际上我不关心用户体验,因为用户不应该参与。我所需要的只是一个应用程序,它可以在命令行中以用户权限运行,只需将myapp.app复制到/Applications并启动它。