我在下面的按钮下使用此功能来重新启动应用程序。
func relaunchApp() {
let url = URL(fileURLWithPath: Bundle.main.resourcePath!)
let path = url.deletingLastPathComponent().deletingLastPathComponent().absoluteString
let task = Process()
task.launchPath = "/usr/bin/open"
task.arguments = [path]
task.launch()
exit(0) }
这在我的 Macbook Air 2015 型号上完美运行。但是,当我将此文件发送给具有完全相同型号(或我也试过此功能的 Mac Mini)的任何其他人时,按下按钮后没有任何反应。这是在完全编译和只是从 Xcode 运行的两种情况下,要么在我这边工作。我该如何解决这个问题?
最佳答案
也许这是一个时间问题...如果 open
命令在您的应用程序完全消失之前运行,open
可能认为它无关紧要。无论如何,您使用 open
的方法似乎不必要地复杂。试试这个(原谅我的 Objective-C,我不懂 Swift):
NSError* err = nil;
[[NSWorkspace sharedWorkspace]
launchApplicationAtURL: [[NSBundle mainBundle] bundleURL]]
options: NSWorkspaceLaunchAsync | NSWorkspaceLaunchNewInstance
configuration: nil
error: &err ];
[NSApp terminate: NSApp];
关于swift - 为什么我的应用程序不能在其他 Mac 上重新启动?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41025118/