You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

iOS Firebase自定义令牌登录部分设备失效排查(Xcode 15)

部分设备Firebase自定义令牌登录内部错误排查与解决

错误信息

错误:发生内部错误,请打印并检查错误详情以获取更多信息。

已排查操作

  • 应用已上传至App Store Testflight
  • 已尝试卸载后重新安装应用
  • 已验证GoogleService-Info.plist文件无误
  • 已确认Firebase控制台所有服务均已启用
  • 已检查服务器生成的refreshToken有效性,确认正确

核心代码

Auth.auth().signIn(withCustomToken: refreshToken) { _, error in
    if let authError = error {
        log.debug(authError.localizedDescription)
        //Error:- An internal error has occurred, print and inspect the error details for more information.
        return
    } else {
        self.goToNextStep()
    }
}

//refreshToken = Token generated from server
//refresh Token sample:- eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJmaXJlYmFzZS1hZG1pbnNkay1YWFhAWFhYLVhYWC1YWC5pYW0uZ3NlcnZpY2VhY2Nv
dW50LmNvbSIsImF1ZCI6Imh0dHBzOi8vaWRlbnRpdHl0b29sa2l0Lmdvb2dsZWFwaXMuY29tL2dv
b2dsZS5pZGVudGl0eS5pZGVudGl0eXRvb2xraXQudjEuSWRlbnRpdHlUb29sa2l0IiwiZXhwIjox
NzAxNzU5MDAwLCJpYXQiOjE3MDE3NTU0MDAsInN1YiI6ImZpcmViYXNlLWFkbWluc2RrLVhYWEBk
WFhYLVhYWC5pYW0uZ3NlcnZpY2VhY2NvdW50LmNvbSIsInVpZCI6IlhYWFhYWCJ9.SIGNATURE

问题场景

该功能在iPhone 15/15 Pro模拟器(iOS17)、iPhone XS(iOS15/16)、iPhone14 Pro(iOS17)上均正常运行,但部分设备出现上述错误。

排查与解决方向

  1. 打印完整错误详情
    当前代码仅输出本地化描述,无法获取内部错误的具体原因。修改代码打印完整错误信息:

    if let authError = error {
        log.debug("Firebase Auth Error: \(authError)")
        log.debug("Error Code: \(authError._code)")
        log.debug("Error User Info: \(authError.userInfo)")
        return
    }
    

    常见深层原因包括:令牌签名算法不兼容、令牌过期时间异常、设备系统时间偏差、Firebase SDK版本不兼容。

  2. 校准设备系统时间
    设备系统时间与服务器时间偏差过大(超出令牌有效期范围)会导致验证失败,引导用户开启自动设置时间功能。

  3. 统一Firebase SDK版本
    确保所有设备使用的Firebase Auth SDK版本一致。部分旧iOS版本设备可能对新版SDK兼容性差,可尝试降级至稳定兼容版本(如10.x系列)测试。

  4. 验证令牌受众字段
    检查服务器生成的JWT令牌中aud字段是否与Firebase项目要求一致:自定义令牌的aud必须为https://identitytoolkit.googleapis.com/google.identity.identitytoolkit.v1.IdentityToolkit,或与项目Web客户端ID匹配(需在Firebase控制台确认)。

  5. 排查网络环境问题
    部分设备处于受限网络(企业内网、代理)时,可能无法连接Firebase验证服务器。测试不同网络环境下的登录情况,排除网络拦截。

  6. 检查Testflight构建配置
    确认Testflight构建的签名配置(Provisioning Profile、证书)包含Firebase Auth所需权限,同时检查Info.plist中NSAppTransportSecurity设置,确保允许访问Firebase相关域名。

内容的提问来源于stack exchange,提问作者Milan Ravliya

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.05 00:12:39