gpt4 book ai didi

macos - 通过 info.plist 中的 CFBundleDocumentTypes 覆盖 Mac 应用程序文件关联

转载 作者:行者123 更新时间:2023-12-01 02:13:58 35 4
gpt4 key购买 nike

我开发了一个 Mac 应用程序,用于保存和加载独特类型的文件。该类型在 CFBundleDocumentTypes 下的 info.plist 中正确声明,列为 LSHandlerRank: Owner 和 CFBundleTypeRole: Editor。我正在发布我的应用程序的新版本,我希望如果已经在他们的机器上安装了我的应用程序以前版本的用户安装了新版本但同时安装了旧版本,新版本会自动接管文件关联此类型来自旧版本的应用程序。但是默认的操作系统行为似乎是授予与文件类型关联的最早安装的应用程序作为它的永久所有者,除非用户手动更改它。我知道命令行工具duti可以进行关联更改,也可以编辑系统文件 com.apple.LaunchServices.plist,但这些似乎不是从应用程序以编程方式进行此操作的最佳或最可靠方法。是否有任何“正确”/Apple 认可的方式来做我想做的事?

最佳答案

应用程序为文件类型设置默认应用程序的官方 Apple 认可的方法可能是使用他们提供的 LSSetDefaultRoleHandlerForContentType功能。此函数设置存储在 LaunchServices 中的值。

Here是关于如何在 Objective-C 和 Swift 中使用此 API 的有限官方文档。

似乎没有任何方法可以通过 Info.plist 做到这一点,作为第一个应用程序被设置为用户首选的应用程序。用户必须更改他们的首选应用程序,您可以使用上述 API 进行更改。

关于macos - 通过 info.plist 中的 CFBundleDocumentTypes 覆盖 Mac 应用程序文件关联,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26643721/

35 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com