LSApplicationQueriesSchemes在Xcode13或iOS15下异常是BUG吗?
iOS15 LSApplicationQueriesSchemes 配置失效问题说明
这个问题属于iOS 15 引入的系统级限制,并非Xcode 13的BUG。
限制规则说明
苹果在iOS 15版本中对LSApplicationQueriesSchemes的生效数量新增了未公开的上限约束:
- 系统仅会读取该配置列表中靠前的约30~50个合法scheme(不同iOS 15小版本、设备类型会有小幅浮动,和你测试的前35个可正常生效的结果吻合)
- 超出上限的所有配置项会被系统直接忽略,哪怕配置书写正确,调用
-canOpenURL:方法时依然会触发权限错误 - 该限制仅在iOS 15及以上版本生效,iOS 14及更早版本无此约束,所以你之前的219个配置可以正常运行
你遇到的报错原文如下:
-canOpenURL:failed for URL: "xxxx://" - error: "This app is not allowed to query for scheme xxxx"
优化建议
- 优先将业务核心需要检测的scheme调整到配置列表的前30位,保证核心功能正常运行
- 清理非必要的scheme检测逻辑,尽可能将总配置数量压缩到50个以内
- 对于非核心的跳转场景,可以取消预检测逻辑,直接调用
openURL:方法执行跳转,若对应应用未安装系统会自动弹出无法打开的提示,不会触发权限错误
内容的提问来源于stack exchange,提问作者StefanQu
相关产品推荐
相关产品推荐


