macOS - 获取当前 运行 应用程序的路径

macOS - Get path to currently running application

问题

是否可以确定 macOS 应用程序在 运行 时的启动位置?

上下文

我开发了一个 Safari 扩展,为了启用该扩展,应用程序需要存在 /Applications/。一些用户尝试直接从 DMG 文件 运行 应用程序,然后抱怨该扩展没有出现在 Safari 的扩展设置中。我想检测到这一点并提醒他们他们需要移动文件。

您可以使用 NSBundle,特别是 bundlePath 属性。 documentation 表示:

The full pathname of the receiver’s bundle directory.

你可以像这样使用它:

NSString* bundlePath;
bundlePath = [[NSBundle mainBundle] bundlePath]

NSLog(@"%@", bundlePath);

如果您希望使用 NSURL 而不是字符串,还有 bundleURL