iOS平台1Password Passage Auth报错信息不明确问题求助
针对你遇到的这两个错误,以下是具体的排查和解决步骤:
1. 核对Apple开发者后台的App ID配置
- 确保已开启Authentication Services能力,并且添加了正确的关联域名(Associated Domains),格式为
webcredentials:<你的Passage域名>(比如webcredentials:your-app.passage.id) - 确认App ID的Bundle ID和Passage控制台中配置的完全一致,大小写、特殊字符都不能出错
2. 验证Passage初始化参数
- 检查初始化Passage时传入的
appID是否为Passage控制台生成的专属App ID(不是Apple的App ID),示例代码:let passage = Passage(appID: "YOUR_PASSAGE_APP_ID") - 若未正确初始化,会直接导致后续授权请求失败
3. 校验输入的邮箱格式
- Passage对注册标识符(邮箱)的格式有严格要求,无效格式会触发后端返回无效响应,进而引发
ASAuthorizationError 1004 - 在调用
register前添加邮箱格式校验,比如:func isValidEmail(_ email: String) -> Bool { let emailRegEx = "[A-Z0-9a-z._%+-]+@[A-Za-z0-9.-]+\\.[A-Za-z]{2,64}" let emailPred = NSPredicate(format:"SELF MATCHES %@", emailRegEx) return emailPred.evaluate(with: email) } func registerNewUser() { Task { guard isValidEmail(identifier) else { print("Invalid email format") return } // 后续注册逻辑 } }
4. 检查设备环境
- Passkey功能要求iOS 16.0及以上版本,确保测试设备系统版本达标
- 设备必须设置了锁屏密码(Passkey依赖系统安全组件,无密码无法创建密钥对)
5. 优化错误处理以定位问题
- 原代码仅打印
localizedDescription,无法获取精准错误信息,建议扩展错误处理逻辑:
通过错误码可以更直接地定位问题(比如Passage error 5通常关联Apple授权流程的底层错误)catch let error as PassageError { print("Passage错误码: \(error.code), 详情: \(error.localizedDescription)") } catch let error as ASAuthorizationError { print("Apple授权错误码: \(error.code.rawValue), 详情: \(error.localizedDescription)") } catch { print("未知错误: \(error)") }
内容的提问来源于stack exchange,提问作者apps outloud
相关产品推荐
相关产品推荐

