iOS中使用prefs scheme打开设置密码页失败,错误码-10814求助
解决iOS设置密码页深度链接无法打开的问题
核心原因
prefs: 属于苹果私有URL Scheme,从iOS 10开始,系统就限制第三方应用直接调用这类私有Scheme——哪怕你在info.plist中添加了Queried URL Schemes,系统仍会拦截请求,你遇到的NSOSStatusErrorDomain Code=-10814错误就是这个原因导致的。
替代解决方案:使用官方支持的合法方式
要唤起密码设置页,只能用苹果提供的官方API或公共Scheme:
1. 导入AuthenticationServices框架
在代码文件顶部导入对应框架:
import AuthenticationServices
2. 调用官方Scheme跳转
使用App-Passwords:这个苹果官方认可的Scheme,代码示例:
let passwordSettingsURL = URL(string: "App-Passwords:")! if UIApplication.shared.canOpenURL(passwordSettingsURL) { UIApplication.shared.open(passwordSettingsURL, options: [:], completionHandler: nil) }
3. 配置info.plist(可选但推荐)
在info.plist的LSApplicationQueriesSchemes数组中添加App-Passwords,避免系统误拦截:
<key>LSApplicationQueriesSchemes</key> <array> <string>App-Passwords</string> </array>
额外提醒
你已知该功能不符合App Store审核要求,需注意:即便用官方方式跳转,若功能场景违反审核指南(比如无合理需求强制引导跳转系统设置),仍有被拒风险。另外,所有私有Scheme(如prefs:)在iOS 10及以上系统中已无法被第三方应用调用,无需再尝试。
内容的提问来源于stack exchange,提问作者Oscar Apeland
相关产品推荐
相关产品推荐

