自定义文件类型无“打开方式”选项,已配置UTType/Transferable求解答
自定义文件类型无法通过“打开方式”唤起应用的排查要点
针对你遇到的能分享文件但无“打开方式”选项的问题,核心问题大概率出在Info.plist的配置遗漏上,以下是具体排查和修复要点:
补充UTType导入声明:
你仅通过代码导出了UTType,但系统要识别应用可打开该类型,需在Info.plist中同时配置UTImportedTypeDeclarations数组。确保其中的UTTypeIdentifier和代码里的com.brettrosen.Mocha.reminder-list完全一致,同时补充:UTTypeConformsTo:指定该类型继承的父类型,比如public.json(因为你的数据是JSON格式)UTTypeTagSpecification:配置对应的文件扩展名、MIME类型,让系统能通过文件后缀识别类型
添加CFBundleDocumentTypes配置:
必须在Info.plist中添加CFBundleDocumentTypes数组,关联你的自定义UTType,关键配置项包括:CFBundleTypeRole:设为Editor或Viewer,声明应用对该文件类型的处理角色LSHandlerRank:设为Owner,确保你的应用被系统列为该类型的优先处理者LSItemContentTypes:数组中填入你的UTType标识符com.brettrosen.Mocha.reminder-list
验证配置与代码的一致性:
代码中导出的UTType标识符必须和Info.plist里的所有声明完全匹配,包括大小写、域名格式,任何拼写错误都会导致系统无法关联应用与文件类型清理缓存并重启生效:
系统会缓存UTType配置,修改Info.plist后,建议删除设备上的应用、清理Xcode缓存,重新安装后重启设备,确保新配置生效
附:Info.plist关键配置示例(可参考补充)
<key>UTImportedTypeDeclarations</key> <array> <dict> <key>UTTypeIdentifier</key> <string>com.brettrosen.Mocha.reminder-list</string> <key>UTTypeDescription</key> <string>Mocha Reminder List</string> <key>UTTypeConformsTo</key> <array> <string>public.json</string> </array> <key>UTTypeTagSpecification</key> <dict> <key>public.filename-extension</key> <array> <string>reminderlist</string> </array> <key>public.mime-type</key> <string>application/json</string> </dict> </dict> </array> <key>CFBundleDocumentTypes</key> <array> <dict> <key>CFBundleTypeName</key> <string>Mocha Reminder List</string> <key>CFBundleTypeRole</key> <string>Editor</string> <key>LSHandlerRank</key> <string>Owner</string> <key>LSItemContentTypes</key> <array> <string>com.brettrosen.Mocha.reminder-list</string> </array> </dict> </array>
内容的提问来源于stack exchange,提问作者Brejuro
相关产品推荐
相关产品推荐

