您可以动态地将 CFBundleDocumentTypes 分配给您的 Cocoa 应用程序吗?

2024-02-24

您可以动态地将 CFBundleDocumentTypes 分配给您的 Cocoa 应用程序吗?这意味着在运行时我可以为我的应用程序分配更多扩展来处理。

目前,我为我的应用程序设置了一些扩展来处理 Info.plist 中的 CFBundleDocumentTypes,但我想在应用程序执行时(在运行时)通过代码来执行此操作。基本上,我可以在不修改 Info.plist 文件的情况下使启动服务了解新扩展。

Thanks.


At the moment, there’s no public API1 for an application to dynamically (un)register document types with Launch Services during runtime.

Open Emu http://openemu.org/就面临着这个问题。用户可以有选择地下载/安装模拟器,这些模拟器是其 Info.plist 文件定义文档类型的捆绑包。安装模拟器后,捆绑包中定义的类型需要是应用信息.plist。为此,Open Emu 重写了应用程序 Info.plist — 请参阅-更新 OEGameDocumentController 中的InfoPlist https://github.com/OpenEmu/OpenEmu/blob/master/OpenEmu/OEGameDocumentController.m#L369.

请注意,覆盖捆绑包 Info.plist 违反了 Mac App Store 的政策。

We have 场雷达 http://bugreport.apple.com要求运行时(取消)注册文档类型。我建议您也提交另一份文件,该文件应作为以下文件的副本关闭#2526726 http://rdar/problem/2526726。即使它是重复的,无论如何也必须将其归档,以便苹果公司估算需要此功能的人数。

1It might be possible via SPI, though. When I was looking into this, I stumbled upon _LSRegisterItemFromItemInfo() in Launch Services.

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

您可以动态地将 CFBundleDocumentTypes 分配给您的 Cocoa 应用程序吗? 的相关文章

随机推荐

  • 如何在 Ruby 中对数组进行分组和求和?

    我有一个像这样的数组 ar 5 2014 01 27 20 2014 01 28 5 2014 01 28 10 2014 01 28 15 2014 01 29 5 2014 01 29 5 2014 01 30 10 2014 01 3
  • JavaScript 中的堆和本机内存分配:如何管理?

    JavaScript 有堆 垃圾收集 内存和本机 类型数组 DOM 元素 内存 问题 两者之间是否存在平衡 以便如果我想要大量类型化数组 它可以工作 但只是减少堆 可以这么说 通常的模型是分配内存 使得本机从顶部开始 堆在底部开始 当需要更
  • AVPlayer连接丢失重启

    我正在使用 AVPlayer 对象在我的 iOS 应用程序中播放远程广播流 该流工作正常并在后台播放 进行一些连接测试时我遇到了一些问题 一旦播放器连接丢失 播放器就会停止 如您所料 但是当连接恢复时我无法使播放器再次开始 我粗略地设置了一
  • 如何在带有输入的地图元素方法上使用 std::for_each ?

    I have struct Mystruct void Update float Delta typedef std map
  • 断言错误:传入的类型不是 ComponentType,它没有 'ɵcmp' 属性

    每当应用程序运行时 我都会收到此错误 尽管在当前的开发中不会给我带来问题 我认为 我想了解此错误并知道它来自哪里 因为我完全迷失了 我什至无法发布相关内容代码 但我会尝试 这些是主要路线 appModule const routes Rou
  • Gradle 与 QueryDSL 4.1.4 和 Intellij

    我正在尝试在 Spring Boot 1 5 2 项目中识别 queryDSL 1 4 1 的 Q 类 IDE 是 Intellij Ultimate 构建 gradle buildscript ext springBootVersion
  • Silverlight 与 C++.Net

    您可以使用 C Net 编写 Silverlight 应用程序吗 不使用C 或VB Net作为后端语言 而是使用C Net 您可以使用任何语言 只要它编译为纯托管代码即可 例如 有使用 IronPython IronRuby 的 Silve
  • C++ 异常 - 抛出字符串

    我的代码有一个小问题 由于某种原因 当我尝试使用下面的代码抛出字符串时 我在 Visual Studio 中收到错误 include
  • AlertDialog setmessage 在 Asynctask 内不起作用

    下面是我尝试通过 onProgressUpdate 方法在 Asynctask 中显示进度的代码 但它不会显示在警报对话框中 仅显示初始消息 class DownloadFileFromURL extends AsyncTask
  • TaskFactory.StartNew -> System.OutOfMemoryException

    大约有 1000 个任务正在运行 但有时我会收到任务计划程序抛出的以下内存不足异常 可能是什么原因以及如何避免它 System Threading Tasks TaskSchedulerException An exception was
  • 反应渲染逻辑 && 与三元运算符

    在反应中render 当 x 的值等于 1 时 逻辑 和三元运算符都会显示Hello并且两者在语法上都是正确的 当我不想显示我的条件的其他部分时 我总是使用 但我遇到过一个代码库 其中大多数地方都使用三元运算符null代替 使用一种方法相对
  • 使用 Spark 2.0.1 将数据写入 Redshift

    我正在做一个 POC 我想将一些简单的数据集写入 Redshift 我有以下 sbt 文件 name Spark POC version 1 0 scalaVersion 2 10 6 libraryDependencies org apa
  • 使用 iText pdfHTML 的 PDF 页面大小和格式

    我正在尝试使用 iText7 1 0 和 pdfHTML2 0 0 将 3 个 HTML 页面 均具有相同内容 导出为 PDF这个例子 https developers itextpdf com content itext 7 conver
  • 从 Python 中的“enchant suggest()”获取最相关的单词(拼写检查)

    我想从中获取最相关的单词enchant suggest 有没有更好的方法来做到这一点 我觉得我的函数在检查 100k 或更多范围内的大量单词时效率不高 有问题enchant suggest gt gt gt import enchant g
  • 如何在 Outlook 中添加默认签名

    我正在 Access 中编写一个 VBA 脚本 用于创建并自动填充几十封电子邮件 到目前为止 编码很顺利 但我是 Outlook 新手 创建 mailitem 对象后 如何将默认签名添加到电子邮件中 这将是创建新电子邮件时自动添加的默认签名
  • 如何处理 data.table 中的列表列

    在合并数据的过程中 我经常会得到列表列 例如 左表中的一行在右表中有多个匹配项 让我们定义一下 DT data table x list c 1 2 c 3 4 5 y list c T T c T F T z c 1 2 N c 1L 2
  • 让 javaFX 11 应用程序在 docker 上运行

    我正在尝试让一个在我的机器上完美运行的应用程序在 docker 上运行 这是我的 docker 文件 FROM openjdk 11 jre slim VOLUME tmp ADD someJar jar someJar jar ADD l
  • 如何在 @code 块内编写 Blazor HTML 代码?

    如何在 Blazor 内部的函数中编写 Blazor HTML 代码 code block 考虑以下代码 page Test if option 1 drawSomething Something else drawSomething So
  • 如何获取表单的截图

    有什么方法可以输出活动表单的屏幕截图吗 NET 支持的更简单的答案 控件 DrawToBitmap http msdn microsoft com en us library system windows forms control dra
  • 您可以动态地将 CFBundleDocumentTypes 分配给您的 Cocoa 应用程序吗?

    您可以动态地将 CFBundleDocumentTypes 分配给您的 Cocoa 应用程序吗 这意味着在运行时我可以为我的应用程序分配更多扩展来处理 目前 我为我的应用程序设置了一些扩展来处理 Info plist 中的 CFBundle