【发布时间】:2015-10-18 23:14:01
【问题描述】:
我已经基于 Apple 文档中的“simpleEncrypt”示例实现了一个 MacOS 服务。我正在运行 10.9 和 Xcode 6.2。
我可以构建应用程序包,将其复制到 /Applications,运行一次,我的服务将按预期出现在其他应用程序的服务菜单中。
如果我运行“pbs -dump_pboard”,我的应用程序包的正确路径将显示为 NSBundlePath,正如预期的那样。
但是,当我从“服务”菜单中选择我的服务时,MacOS 将启动我的应用程序的旧副本,该副本位于 ~/Library/Developer/Xcode/Archives。
如果我删除那个旧副本,它将从其他地方运行另一个副本。只有在我删除文件系统上与我的服务的 NSPortName 具有相同 CFBundleName 的所有其他应用程序包之后,MacOS 才会从 /Applications 启动正确的应用程序包。当它发生时,服务会正常工作。
如何让 MacOS 可靠地为我的服务调用正确的应用程序包?
【问题讨论】:
标签: objective-c xcode macos cocoa service