如何修改iOS分享功能中我的App的显示文本?
解决iOS分享菜单中App显示文本为“Copy to”的问题
嘿,这个问题我之前帮好几个开发者捋清楚过,官方文档确实有点语焉不详,但核心配置都藏在Info.plist里,咱们一步步来调整:
1. 先修正文件处理角色配置
打开你的Info.plist(建议用源代码模式编辑,比可视化界面更直观),找到CFBundleDocumentTypes数组——这是你声明App支持的文件类型的核心配置区。
对于每个你想修改分享文本的文件类型条目,必须确保LSHandlerRole的值设置为**Viewer或Editor**,而不是None或其他值:
- 当角色是
Viewer/Editor时,系统会默认识别为“打开/导入”类操作,显示类似“Open in [你的App名]”的文本 - 如果角色配置错误,系统就会默认显示“Copy to [你的App名]”
示例源代码配置:
<key>CFBundleDocumentTypes</key> <array> <dict> <key>CFBundleTypeName</key> <string>我的支持文件</string> <key>LSHandlerRole</key> <string>Viewer</string> <key>LSItemContentTypes</key> <array> <string>public.text</string> <!-- 替换成你实际支持的UTI类型 --> </array> </dict> </array>
2. 自定义显示文本(可选)
如果你想把前缀从“Open in”改成“Import to”或者其他自定义表述,需要通过本地化字符串来覆盖系统默认逻辑:
- 在项目中创建对应语言的
InfoPlist.strings文件(比如en.lproj/InfoPlist.strings、zh-Hans.lproj/InfoPlist.strings) - 在文件中添加键值对(以英文为例):
// 自定义App的显示名称 "CFBundleDisplayName" = "MyApp"; // 可选:自定义文件类型的描述,让文本更贴合导入场景 "CFBundleTypeName" = "可导入文件";
系统的分享菜单文本逻辑是[动作前缀] + [App名称],如果你的App主打导入场景(比如导入文档、照片),调整角色后系统大概率会自动切换为“Import to”前缀;如果还是不符合预期,通过本地化字符串可以进一步微调。
3. 检查自定义文件类型声明(如果有)
如果你的App是通过UTImportedTypeDeclarations声明自定义文件类型的,也要确保对应的UTTypeTagSpecification和角色配置正确,避免系统误判为“复制”类操作。
最后记得清理项目缓存(Command+Shift+K),然后完全重装App到测试设备——Info.plist的修改有时候需要彻底替换才能生效。
内容的提问来源于stack exchange,提问作者William
相关产品推荐
相关产品推荐

