我希望能够根据当前用户的偏好更改我的应用程序提供的OSX服务(例如添加更多,更改名称,......)。这基本上意味着修改Info.plist(NSService密钥),但是当应用程序在运行时修改自己的Info.plist时,我认为这不是一个好习惯,对吧? (至少基于这里的一些搜索)。有没有其他选择如何获得此功能?
我想它应该总是一个外部实体来修改Info.plist?到目前为止,我只能考虑提供一个系统首选项包,它将在实际的应用程序中进行修改?你有什么想法吗?
谢谢
答案 0 :(得分:0)
一种方法是在〜/ Library / Services中安装提供服务的服务,并从主应用程序中编辑该应用程序的Info.plist。
当然,这应该是一个明确的操作,因此用户(希望)知道如果他们删除了您的应用程序就删除该服务。您应该在产品的支持网页上记录该程序,以防它们不这样做。
答案 1 :(得分:0)
这是对之前建议的一个小改动,创建一个单独的应用程序来处理服务并将其捆绑在您的资源中。如果要启用该服务,而不是将文件复制到〜/ Library / Services,请在〜/ Library / Services文件夹中创建一个符号链接,指向您在资源中捆绑的应用程序。
这样,如果用户删除了您的应用程序,那么将留下的所有内容都是指向无效位置的符号链接。与实际离开应用程序相比,没有更少的手臂,并且将具有该服务将不再可用的额外好处(因为当用户删除您的应用程序时,info.plist将被删除)。