macOS如何使用代码重启自身
2020-01-14 本文已影响0人
_我和你一样
如何重启自身?
搜过网上的一些方案,都是通过identifier来重启应用的。
launchApplication(withBundleIdentifier bundleIdentifier ...
这的确可以重启应用,但对于一个开发者,可能会有很多相同identifier的测试包,这个方法找到第一个相同identifier的应用就会启动那个应用,而这有可能并不是同一个版本的应用。
我的需求严格来说是自启动,自己启动自己。不是相同identifier的其他应用。
那么该如何处理呢?
自己重启自己,分两步:
- 根据自己的包路径新建一个实例
- 退出自己
所以可以使用下面的方法:
try? NSWorkspace.shared.launchApplication(at: Bundle.main.bundleURL, options: [.async,.newInstance], configuration: [:])
NSApp.terminate(nil)