swift - 为什么我的应用程序不能在其他 Mac 上重新启动?

标签 swift xcode macos

我在下面的按钮下使用此功能来重新启动应用程序。

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/

相关文章:

Swift 为另一个键的键设置值

ios - 在 Collection View 中准备 segue

ios - 应用程序在启动时崩溃

ios - 依赖项 `Firebase/Core` 未在任何具体目标中使用

ios - dyld : Symbol not found: _OBJC_CLASS_$_Reachability, Xcode 11 崩溃

macos - 如何运行 fswatch 来调用带有静态参数的程序?

ios - 保存 UIView 时不断出现空白图像...如何将 UIView 和 subview 保存到相机胶卷上?

ios - 播放 AVPlayerItem CurrentTime(以秒为单位)返回不一致的值

objective-c - 在 MacOS 应用程序中运行时从大型字典中检索值

security - Mac应用商店-尝试使加密起作用。 。 。我想念什么?