如何使用Xcode 11在UTIs部分配置.app文件?

Tho*_*h73 6 import uti .app xcode11

我正在开发一个应用程序,该应用程序有时需要一次导入几种不同类型的二进制文件和ascii文件,具有不同的扩展名,例如.bin,.app,.crc等。

为了实现这一点,我在项目目标的信息部分中准备了文档类型和导入的UTI。

直到Xcode 10为止,一切都工作正常,但是现在我正在使用Xcode 11 Beta 6测试该应用程序,我注意到该导入对于我所有处理的文件扩展名都可以正常工作,.app文件除外。

基本上,当我从一个电子邮件附件或一个“文件”文件夹中获取任何.app文件,并尝试将其导出以将其导入到一个应用程序中时,在支持这些文件的应用程序中不再显示我的应用程序。

在信息部分中,我使用了以下条目(用于.app文件):

Document Types:
My App Data Files
Name: My App Data Files
Types: public.data

Additional document type properties:
LSHandlerRank (String) -> Alternate


Imported UTIs:
My App Application File:
Description: My App Application File
Identifier: com.mydomain.app
Conform To: public.data

Additional imported UTI properties:
UTTypeTageSpecification (Dictionary) ->
Item 0 (String) -> app
Item1 (String) -> APP
Run Code Online (Sandbox Code Playgroud)

对于Xcode 10来说,这很好用,对于Xcode 11来说,现在再也没有了。

我分析了Apple的“统一类型标识符参考”列表,并注意到对于.app文件,建议您将以下值之一用于“符合”:

  • com.apple.package
  • com.apple.bundle
  • com.apple.application

并将此值作为标识符:

  • com.apple.application-?捆绑

我尝试相应地修改值,但未进行任何更改,并且我的应用程序未“看到” .app文件类型,但是我看到其他应用程序对此提供支持,因此即使在iOS 13上也必须有一种方法(使用最新的Beta版本:13.1)。

更新:

从Apple,通过反馈助手,我得到以下答案:“具有.app扩展名的常规文件(而非软件包)的UTI为'com.apple.application-file'”。但不幸的是,我仍然无法使其工作。我使用了以下配置:

DOCUMENT TYPE:
Name —> My App Application File
Types —> com.apple.application-file
Additional document type properties:
    CFBundleTypeRole —> Editor
    LFHandlerRank —> Alternate

IMPORTED UTI:
Description —> My App Application File
Identifier —> com.apple.application-file
Conform To —> public.data
Additional imported UTI properties:
    UTTypeTagSpecification:
        Item 0 —> app
        Item 1 —> APP
Run Code Online (Sandbox Code Playgroud)

关于配置错误的任何想法?

Ful*_*ron 0

我遇到了同样的问题,但我解决了更改 \nImportUTI: Conform To \xe2\x80\x94> public.data
\n因为,在我的情况下,值是不同的

\n\n

也许有帮助

\n\n

在这里您将找到 info.plist 相关部分:

\n\n
<key>UTImportedTypeDeclarations</key>\n<array>\n    <dict>\n        <key>UTTypeConformsTo</key>\n        <array>\n            <string>public.data</string>\n        </array>\n        <key>UTTypeDescription</key>\n        <string>  myAppName </string>\n        <key>UTTypeIconFiles</key>\n        <array>\n            <string>xxx_Icon60.png</string>\n        </array>\n        <key>UTTypeIdentifier</key>\n        <string>.. My Bundle identifier ...</string>\n        <key>UTTypeTagSpecification</key>\n        <dict>\n            <key>public.filename-extension</key>\n            <array>\n                <string>gkc</string>\n                <string>GKC</string>\n            </array>\n        </dict>\n    </dict>\n</array>\n
Run Code Online (Sandbox Code Playgroud)\n