一种获取 Cocoa (Swift/Obj-C)... and/or 中所有声明的 UTI 的方法,确定应用程序包定义的 UTI?

A way to get all declared UTIs in Cocoa (Swift/Obj-C)... and/or, determining UTIs defined by App bundles?

我想这实际上是一个双重问题。一方面,我想知道是否有一种巧妙的方法来枚举给定系统上所有已声明的 UTI。

我知道 lsregister -dump 是一个选项,因为我这边有一些 grep 和解析;但是,我想知道是否有更好的解决方案。

进一步......我想知道是否有一种方法可以在给定应用程序路径的情况下检索 imported/exported UTI 列表。我知道反过来应该是可能的(即找到哪个包已经声明了给定的 UTI)。

我想知道这个的原因之一是因为问题第一部分的可能解决方案是遍历所有应用程序并检索它们的 imported/exported UTI(尽管我认为它会可能不是一个非常有效的解决方案)

我搜索了所有我能想到的地方,但离答案还差得很远。到目前为止,它似乎要么解析 lsregister -dump 的输出,要么尝试直接从应用程序的 Info.plist 文件中读取 UTI 密钥...

最后,在我的搜索中,我遇到了一个私人 API, 可能 有用,但我完全不知道如何使用它,因为绝对没有在线文档...我说的是"__UTCopyDeclaredTypeIdentifiers"...也许有人知道该函数采用哪些(如果有的话)参数,and/or它到底是做什么的return?

import Foundation
@_silgen_name("_UTCopyDeclaredTypeIdentifiers") func UTCopyDeclaredTypeIdentifiers() -> CFArray

let UTIs = UTCopyDeclaredTypeIdentifiers()
print(UTIs)

应该打印函数知道的所有 UTI。