iOS 17更新后Custom URL Scheme无法处理的问题咨询
iOS 17 自定义URL Scheme验证规则变更问题解答
问题概述
我为应用实现Custom URL Scheme后原本运行正常,但iOS 17更新后,搭载该系统的设备无法处理我的Custom URL Scheme。此前使用旧版Xcode时,通过命令xcrun simctl openurl booted mycustomscheme://some:action:here可成功测试链接,Xcode更新后执行该命令返回“Invalid URL”错误。而执行命令xcrun simctl openurl booted mycustomscheme://some/action/here可正常运行,格式为mycustomscheme://some/action/here的链接也能正常工作。
解答
iOS 17确实收紧了自定义URL Scheme的验证规则,现在严格遵循RFC 3986标准的URL结构规范。在标准URL中,冒号仅允许出现在协议名(scheme)之后、端口号之前的位置,路径部分的层级分隔必须使用斜杠
/,不能用冒号。旧版iOS对URL格式的校验较为宽松,允许非标准的冒号使用场景,iOS 17则强制执行了标准规范,导致原有的带冒号路径的URL被判定为无效。相关说明可以查看以下官方内容:
- Xcode 15的Release Notes中,包含URL处理逻辑更新的相关条目;
- 苹果开发者文档中的《URL Scheme Reference》,明确要求自定义URL Scheme必须符合标准URL格式。
内容的提问来源于stack exchange,提问作者Altemora
相关产品推荐
相关产品推荐

