iOS应用通过URL跳转打开Apple Mail应用失败问题求助
问题原因及解决方案
核心原因
当前项目的Info.plist文件未将Apple Mail对应的message URL Scheme添加到LSApplicationQueriesSchemes白名单中。iOS对canOpenURL:接口做了安全限制,所有需要校验是否可打开的URL Scheme,必须提前在白名单中声明,未声明的Scheme调用canOpenURL:时会统一返回false。
你之前的项目可以正常运行,是因为旧项目已经完成了白名单配置,当前项目遗漏了该配置才会出现异常。
解决步骤
- 打开当前项目的
Info.plist文件,右键点击空白区域选择「Add Row」 - 新增键为
LSApplicationQueriesSchemes(系统显示中文译名为「应用查询的协议列表」),类型设置为Array - 给该数组新增一个String类型的item,值填写
message - 重新编译项目运行即可恢复正常
额外排查点
如果完成配置后仍返回false,可以检查以下两项:
- 确认
message拼写正确,没有多余空格或拼写错误 - 确认白名单配置是添加到当前运行Target对应的Info.plist中,不要错加到其他Target的配置里
内容的提问来源于stack exchange,提问作者Thumnor
相关产品推荐
相关产品推荐

