问题标签 [launch-services]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
objective-c - 搜索具有相同捆绑 ID 的多个应用程序
我正在尝试使用特定捆绑 ID 搜索安装在我的 Mac 上的应用程序。我设法使用LSFindApplicationForInfo
在这个问题中找到的方法来做到这一点。
我面临的问题是我无法弄清楚如何搜索具有相同捆绑 ID 的已安装应用程序。例如,如果我安装了两个版本com.domain.coolapp
,如何同时列出这两个版本?除了使用 .app 搜索 .app 文件外,我似乎找不到任何解决方案lsregister
。
如文档中所述,这是不可能的LSFindApplicationForInfo
:
如果找到多个与指定特征匹配的应用程序,Launch Services 会选择一个,其方式与查找用于打开项目的首选应用程序时相同。
delphi - 如何将 LaunchServices 框架(mac os)添加到 Delphi xe4?
我尝试使用 LaunchServices 框架。不幸的是,某些功能仍然不可用。例如,函数 kLSSharedFileListFavoriteItems 已成功导入。但是,我无法加载函数 LSSharedFileListCreate。代码:
因此,_LSSharedFileListCreate 与 _kLSSharedFileListFavoriteItems 不同,它始终为零,后者具有正确的地址。也许,“LSSharedFileListCreate”包含在另一个库中?任何想法?谢谢。
objective-c - 与大多数其他 OS X 应用程序相比,我究竟应该将什么传递给 -[NSApp activateIgnoringOtherApps:] 以让我的应用程序“自然”启动?
当我学会如何自己启动 NSApplications 时,我使用的代码(基于此处和此处)确实
这会在启动时强制应用程序位于最前面。
我想知道大多数其他应用程序是做什么的。我希望能够直接从二进制文件和应用程序包中运行程序,并且我没有使用 Xcode 来构建它(原始构建)。所以我宁愿这个行为自然,可以这么说。
文档确实说 Finder 问题NO
,但是......为什么是 Finder?这不是从流程内部而不是外部运行的方法吗?(我无法控制选择。)那么 Dock 和其他可能的入口点呢?
我什至拆解了 10.8NSApplicationMain()
以查看它做了什么,但据我所知,从 32 位版本中可以看出,除非这个“轻启动”的东西发出这个选择器,否则这个选择器永远不会被调用。
这个问题有答案吗?谢谢......如果这令人困惑,对不起; 我试图尽可能清楚地表达出来。
python - 在 OSX 上首次打开应用程序时禁用显示的对话框
我正在使用 python 2.7 在 osx 10.9 上制作应用程序。但是当它第一次启动时,警告就来了。
您是第一次打开应用程序 MYAPP。您确定要打开此应用程序吗?
那么,如何避免这个警告。我是否需要对app 的 info.plist进行一些更改。
我已经完成了这个问答,但没有提到关于应用程序方面的更改。
我不希望用户使用任何类型的命令来手动运行或进行更改。用户可以"com.apple.LaunchServices LSQuarantine -bool NO"
为所有或"xattr -rd com.apple.quarantine Application.app"
特定应用程序禁用。
我还使用开发者 ID签署了该应用程序。
那么,如何禁用此对话框弹出。
macos - OSX Yosemite:启动服务具有应用程序的构建路径而不是运行路径
我认为这是优胜美地特有的问题,因为我在小牛队(或在那之前的山狮队)没有任何问题......
我有一个我编写的应用程序,它注册了一个帮助应用程序,以便在启动时使用 SMLoginItemSetEnabled 运行。我在这里没有任何问题;这很好用。
SMLoginItemSetEnabled 通过获取包标识符(例如“com.MyCompany.MyApp”)、通过启动服务找到该包的路径并在启动时运行它来工作。
问题是当我“归档”我的项目时,归档构建输出会自动注册为启动服务中的包路径。在 Yosemite 上,即使我将该包复制到 /Applications 并运行它,Launch Services 仍将指向构建路径。因为我的应用程序是沙盒的,OSX 将拒绝在启动期间运行帮助程序。
例如:
尽管我已将包复制到 /Applications 并且我目前正在从该位置运行它,但启动服务仍指向构建路径。
在 Mavericks 和 Mountain Lion 中,如果我上次运行应用程序时通过 xcode 中的“播放”按钮处于调试模式,我遇到了类似的问题,因为启动服务将具有指向调试构建目录的路径。但是,一旦我构建存档并将其复制到 /Applications 并从那里运行它,一切都很好。似乎 Yosemite 只会在 bundle 的版本发生变化时更新 Launch Services 数据库,而这不会仅仅通过将 bundle 从一个地方复制到另一个地方来实现。
有没有人有任何想法?有没有办法强制启动服务更新包的路径,无论是在代码中还是通过命令行?
c++ - LSOpenApplication 已弃用?
根据此页面,功能LSOpenApplication
自OS X v10.10
. 建议的替代方法是使用-[NSWorkSpace launchApplicationAtURL]
。不幸的是,我正在用 C++ 编写一个用户代理,它必须启动一个用 Cocoa 编写的 GUI 应用程序。这意味着我无法访问 Cocoa 功能(包括上述替代方法)。
我可以使用哪些其他功能来帮助我执行此操作,但未标记为已弃用?
提前致谢。
macos - Mac OS X 文件关联有效,但文件图标未更改
我使用 Qt 5.3.2 开发了一个 Mac 应用程序。此应用程序处理具有特定扩展名的文件(比如说.xyz
)。
我创建了一个名为 XYZ.icns 的图标文件并将其添加到我的应用程序包资源文件夹 ( MyApp.app/Contents/Resources/XYZ.icns
)。
我还修改了包的 Info.plist 文件以设置文件关联。我添加了这个条目:
结果:文件关联有效(双击文件确实打开了我的应用程序)但是,图标没有被替换(仍然显示空白文档图标)。
有什么我错过的吗?我查看了其他应用程序的示例,似乎没有什么比我所做的更多。
编辑:我做了更多的测试。我使用以下命令转储了 Launch 服务数据:
结果,我可以在文件中找到包含图标信息的文件类型声明:
EDIT2:一段时间后,它终于可以自己工作了。一夜之间,安装了一个操作系统更新,我还不得不关闭计算机(启动服务可能自己刷新了一些东西)。我会将我的问题更新为:如何确保启动服务在安装或修改应用程序时刷新关联的文件图标?
qt - OS X Yosemite 文件关联工作,但不是文件图标
我的问题与此条目非常相似:Mac OS X file association works, but file icon not changed。
我正在使用 Qt 5.3 开发一个应用程序来处理特定扩展名的文件(比如.xyz
)。我只有 OS X Yosemite 用于测试,并且我设法使文件关联正常工作(双击文件时应用程序打开),但图标(比如xyz.icns
application.app 资源文件夹中的图标)没有改变(仍然默认的白纸,从桌面和 Finder 中可见)。这里是与文件关联相关的 info.plist 内容:
我刷新了启动服务,这似乎为那些在我的情况下解决问题的人解决了问题,并且我实际上在lsregister
转储中只看到了我的应用程序的一个条目:
我也重新启动但没有新结果。我想知道我错过了什么......任何线索?谢谢 !
macos - 将 os x 中的 `edit` 二进制文件修改为不同的编辑器
在命令行上,我可以输入edit <folder/file name>
,它会在 TextWrangler 中打开,我已经很久没有使用过了。我不确定edit
二进制文件是如何到达那里的——我使用 oh-my-zsh,可能相关。我想更改subl
为edit
(更好地输入)并发现它已经存在。
我卸载了 TextWrangler,现在我得到了错误
我一直在寻找如何修改 LaunchServices 数据库并重建它,但我仍然收到错误消息。跑步which edit
给了我/usr/local/bin/edit
fwiw。
是什么控制了这种关联,如何将其切换到 Sublime Text?