iOS16及以上添加Share Extension后‘Open in App’选项缺失问题
问题
在Xcode中添加Share Extension作为目标后,iOS 16及以上版本的文件导入功能中‘Open in App’选项不可用。
描述
我的iOS应用原本可通过Uniform Type Identifiers(UTI),借助‘Open in App’选项导入本地的abc.xyz文件。
复现步骤
- 将自定义文档(如.xyz格式)保存至iPhone本地存储
- 长按该附件
- 点击分享选项
- 打开可处理分享的应用列表
- 长按我的iOS应用
- 分享面板仅显示‘Share with App’选项,‘Open in App’选项缺失
注:我的应用还具备导入其他文件类型的Share Extension
版本差异与测试排查
在iOS 15及以下版本,导入文件时会显示预期的两个选项:‘Open in app’和‘Share with app’;但在iOS 16及以上(含iOS 17 Beta 4),仅显示‘Share with app’选项,导致无法正常导入文件。
为排查问题,我创建测试项目并添加UTI支持以导入abc.pdf文件:
- iOS15及以下:无论文件在邮件客户端还是本地存储,均可通过‘Open in App’导入;添加Share Extension后该选项仍可用
- iOS16及以上:文件在邮件客户端或本地存储时仅显示‘Copy to app’(仅从Files App导入本地文件时可见‘Open in app’);添加Share Extension后,仅显示‘Share with App’选项
总结
添加Share Extension目标后,仅‘Share with app’选项可用,无法通过‘Open in App’导入文件。
Info.plist配置
<key>UTExportedTypeDeclarations</key> <array> <dict> <key>UTTypeConformsTo</key> <array> <string>public.data</string> <string>public.archive</string> </array> <key>UTTypeDescription</key> <string>ImportPDF</string> <key>UTTypeIdentifier</key> <string>net.abcd.pdf</string> <key>UTTypeTagSpecification</key> <dict> <key>public.filename-extension</key> <array> <string>pdf</string> <string>PDF</string> </array> </dict> </dict> </array>
内容的提问来源于stack exchange,提问作者amit khoth
相关产品推荐
相关产品推荐

