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

Firebase iOS真机手机号认证失败、reCAPTCHA验证不通过问题咨询

报错说明

出现的错误信息为:
NativeFirebaseError: [auth/internal-error] Unable to load external reCAPTCHA dependencies!
异常表现:Firebase手机号认证的reCAPTCHA人机验证无法通过,无法获取验证码;安卓设备、iOS模拟器功能正常,仅iOS真机出现异常,已确认开启手机号登录权限、完成URL Types配置。

根因定位
  • iOS系统的App传输安全(ATS)规则拦截了reCAPTCHA相关的Google资源加载
  • Firebase Auth SDK版本存在已知的reCAPTCHA依赖加载bug,本地Pod依赖缓存版本不匹配
  • 真机网络环境无法访问Google reCAPTCHA服务,或者app的网络权限被限制
修复方案
  • 配置ATS域名例外
    在iOS项目的Info.plist文件中添加reCAPTCHA相关域名的访问许可,配置代码如下:
<key>NSAppTransportSecurity</key>
<dict>
    <key>NSAllowsArbitraryLoads</key>
    <false/>
    <key>NSExceptionDomains</key>
    <dict>
        <key>google.com</key>
        <dict>
            <key>NSIncludesSubdomains</key>
            <true/>
            <key>NSAllowsArbitraryLoads</key>
            <true/>
        </dict>
        <key>gstatic.com</key>
        <dict>
            <key>NSIncludesSubdomains</key>
            <true/>
            <key>NSAllowsArbitraryLoads</key>
            <true/>
        </dict>
    </dict>
</dict>
  • 升级Firebase Auth SDK版本
    将项目依赖的Firebase Auth SDK升级到最新稳定版,如果你使用React Native Firebase,同步升级@react-native-firebase/auth依赖;进入iOS项目目录执行pod install --repo-update更新本地Pod依赖,清除旧版本缓存。
  • 调整Auth初始化配置
    初始化Firebase Auth时开启reCAPTCHA自动回退配置,降低外部依赖加载失败概率,参考代码如下(React Native场景):
import auth from '@react-native-firebase/auth';

// 开启reCAPTCHA验证流自动回退
auth().settings.appVerificationDisabledForTesting = false;
// 测试环境可使用本地Auth模拟器,生产环境请删除此行
// auth().useEmulator('http://127.0.0.1:9099');
  • 验证真机网络与权限
    确认测试真机的网络可以正常访问Google服务,部分地区运营商网络默认屏蔽reCAPTCHA资源,可切换WiFi环境测试;同时检查app的网络权限,确认已允许使用蜂窝数据和无线网络。

内容的提问来源于stack exchange,提问作者Maryna Azeez

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.02 03:18:00