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

iOS15.2下提交App Store的应用出现Firebase .webInternalError无法加载reCAPTCHA

iOS 15.2 环境下 reCAPTCHA 加载返回 webInternalError 解决方案
  • 确认问题触发逻辑:该错误仅出现在非测试手机号场景是因为 Firebase 控制台预置的测试手机号会直接跳过 reCAPTCHA 人机校验环节,不会触发 WKWebView 资源加载流程;低版本系统无异常是因为 iOS 15.2 对 WKWebView 的跨域资源校验、TLS 握手规则做了非向下兼容的调整。
  • 修复方案1:调整 WKWebView 全局配置
    在初始化 Firebase Auth 前,主动修改 WKWebView 的默认配置,关闭 iOS 15.2 新增的欺诈网站检测特性,避免该特性误拦截 reCAPTCHA 的资源加载,代码示例:
import WebKit

if #available(iOS 15.2, *) {
    let webConfig = WKWebViewConfiguration()
    webConfig.preferences.isFraudulentWebsiteWarningEnabled = false
    // 配置同步到Firebase Auth的默认web环境
    Auth.auth().useAppLanguage()
    Auth.auth().settings?.isAppVerificationDisabledForTesting = false
}
  • 修复方案2:补充 ATS 域名例外规则
    在项目的 Info.plist 中添加 reCAPTCHA 关联域名的 ATS 例外,明确允许加载谷歌相关域名的资源:
<key>NSAppTransportSecurity</key>
<dict>
    <key>NSExceptionDomains</key>
    <dict>
        <key>recaptcha.net</key>
        <dict>
            <key>NSIncludesSubdomains</key>
            <true/>
            <key>NSAllowsArbitraryLoads</key>
            <true/>
        </dict>
        <key>google.com</key>
        <dict>
            <key>NSIncludesSubdomains</key>
            <true/>
            <key>NSAllowsArbitraryLoads</key>
            <true/>
        </dict>
    </dict>
</dict>
  • 临时规避方案:如果紧急需要过审,可以针对 iOS 15.2 版本用户新增校验降级逻辑,当第一次触发 webInternalError 时,自动切换到短信验证码二次校验的替代流程,绕过 reCAPTCHA 校验环节。

内容的提问来源于stack exchange,提问作者Lance Samaria

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.26 18:06:05