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

Firebase App Check Play Integrity调试令牌配置及使用问题求助

解决Firebase App Check Play Integrity调试令牌无效及Debug构建Auth问题

一、区分两种Debug场景:手动运行 vs 自动化测试

你当前的配置混淆了手动运行Debug应用和Instrumented测试的场景,这是核心问题:

  • debugAppCheckTestHelper.withDebugProvider仅用于Android Instrumented Tests(如Firebase Test Lab或本地UI测试),手动运行Debug构建时无需调用该方法。
  • 手动运行模拟器/真机Debug版本时,直接使用DebugAppCheckProviderFactory,通过日志获取调试令牌后添加到Firebase控制台即可。

二、手动运行Debug构建的正确配置步骤

1. 简化Application类代码

移除debugAppCheckTestHelper相关代码,修改后的代码如下:

FirebaseApp.initializeApp(this)

Firebase.analytics.setAnalyticsCollectionEnabled(!BuildConfig.DEBUG)
Firebase.crashlytics.setCrashlyticsCollectionEnabled(!BuildConfig.DEBUG)

Firebase.appCheck.installAppCheckProviderFactory(
    if (BuildConfig.DEBUG)
        DebugAppCheckProviderFactory.getInstance()
    else
        PlayIntegrityAppCheckProviderFactory.getInstance()
)

2. 获取并注册调试令牌

  • 运行Debug构建的应用,打开Logcat搜索关键字DebugAppCheckProvider,会找到类似日志:

    D DebugAppCheckProvider: Enter this debug secret into the allow list in the Firebase Console for your project: XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX

  • 复制该令牌,进入Firebase控制台→你的项目→App Check→对应Android应用→点击调试令牌→添加复制的令牌并保存。

3. 验证配置

重启应用,若Logcat出现Successfully fetched App Check token相关日志,说明配置生效。

三、Instrumented测试(CI/CD、Firebase Test Lab)的配置

仅在自动化测试场景下需要用到firebaseAppCheckDebugSecret和debugAppCheckTestHelper:

1. 保留build.gradle配置

确保子模块build.gradle中的配置正确:

defaultConfig {
    testInstrumentationRunnerArguments["firebaseAppCheckDebugSecret"] = "你的调试令牌"
}

api 'com.google.firebase:firebase-appcheck-playintegrity:17.0.1'
api 'com.google.firebase:firebase-appcheck-debug:17.0.1'
api 'com.google.firebase:firebase-appcheck-ktx:17.0.1'
api 'com.google.android.play:integrity:1.2.0'
api 'com.google.firebase:firebase-appcheck-debug-testing:17.0.1'

注意:这里的令牌必须是已在Firebase控制台添加的有效调试令牌。

2. 在测试类中使用debugAppCheckTestHelper

将需要App Check的测试逻辑包裹在测试类中(而非Application类):

@RunWith(AndroidJUnit4::class)
class MyAppCheckTest {
    private val debugAppCheckTestHelper = DebugAppCheckTestHelper()

    @Test
    fun testAppCheckProtectedFeature() {
        debugAppCheckTestHelper.withDebugProvider {
            // 编写需要App Check令牌的测试代码,例如调用Firebase Auth电话认证
        }
    }
}

四、Debug构建下Firebase Auth电话认证修复

Debug构建下Auth电话认证失效,是因为App Check未生效导致的。按照上述步骤配置好Debug App Check后,Auth的保护规则会允许调试令牌通过,电话认证即可正常工作。

五、常见坑点

  • 确保Firebase控制台中App Check的调试模式已开启(在App Check设置页面可找到)。
  • 调试令牌为项目级,添加到控制台后所有Debug构建均可使用,无需绑定特定设备或签名。
  • 确保Debug和Release分支的App Check Provider Factory逻辑互斥,避免重复安装。

内容的提问来源于stack exchange,提问作者Bitwise DEVS

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.11 18:42:51