我正在开发一个应用程序,在某些时候我需要一次导入几种不同类型的二进制和 ascii 文件,具有不同的扩展名,例如 .bin、.app、.crc 等。
为了实现这一点,我在项目目标、信息部分、文档类型和导入的 UTI 中准备了。
在 Xcode 10 之前,一切正常,但现在我正在使用 Xcode 11 Beta 6 测试该应用程序,我注意到导入适用于我所有处理的文件扩展名,除了.app文件。
基本上,当我从一个电子邮件附件或一个 Files 文件夹中获取任何.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
这在Xcode 10上工作正常,在Xcode 11上不再工作。
我分析了 Apple 的统一类型标识符参考列表,并注意到对于.app文件,建议您使用以下值之一来表示"符合":
- com.apple.package
- com.apple.bundle
- 苹果应用软件
并将此值作为标识符:
- com.apple.application-bundle
我尝试相应地修改值,但没有任何变化,并且我的应用程序没有"看到".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
关于配置中可能出现什么错误的任何想法?
我遇到了同样的问题,但我解决了更改的问题 ImportUTI: Concomply To —> public.data
,因为在我的例子中,值是不同的
也许有帮助
在这里,您将找到info.plist相关部分:
<key>UTImportedTypeDeclarations</key>
<array>
<dict>
<key>UTTypeConformsTo</key>
<array>
<string>public.data</string>
</array>
<key>UTTypeDescription</key>
<string> myAppName </string>
<key>UTTypeIconFiles</key>
<array>
<string>xxx_Icon60.png</string>
</array>
<key>UTTypeIdentifier</key>
<string>.. My Bundle identifier ...</string>
<key>UTTypeTagSpecification</key>
<dict>
<key>public.filename-extension</key>
<array>
<string>gkc</string>
<string>GKC</string>
</array>
</dict>
</dict>
</array>