在Firebase Test Lab设备运行时如何获取有效App Check令牌?
解决方案
Firebase Test Lab托管的设备(包括物理设备)会被App Check判定为非常规用户设备,默认无法通过Play完整性校验/ SafetyNet校验,无论设备类型都需要适配调试提供器方案,操作步骤如下:
步骤1:为测试构建启用App Check调试提供器
仅在测试用的构建变体(如debug构建、专门的testLab构建类型)中启用调试提供器,不要在生产构建中添加如下代码:
// 仅在测试构建中执行 if (BuildConfig.DEBUG) { FirebaseApp.initializeApp(context) FirebaseAppCheck.getInstance().installAppCheckProviderFactory( DebugAppCheckProviderFactory.getInstance() ) }
同时在模块级build.gradle中引入调试提供器依赖:
dependencies { debugImplementation "com.google.firebase:firebase-appcheck-debug:16.1.2" }
步骤2:在Firebase控制台添加专用调试令牌
- 打开Firebase控制台,进入「App Check」页面,选择对应的Android应用
- 点击应用右侧的三个点菜单,选择「管理调试令牌」
- 点击「添加调试令牌」,备注填写「Firebase Test Lab专用」,生成后复制令牌字符串
步骤3:Test Lab测试配置注入调试令牌
控制台操作场景
在创建Robo测试的「高级选项」板块中,找到「添加仪器测试参数」,添加如下配置:
- 键:
firebaseAppCheckDebugSecret - 值:你刚才复制的调试令牌
gcloud命令行操作场景
在启动测试的命令中添加参数:
gcloud firebase test android run \ --type robo \ --app your-app-debug.apk \ --device model=blueline,version=28 \ --instrumentation-arguments=firebaseAppCheckDebugSecret=你复制的调试令牌
注意事项
- 调试令牌属于敏感信息,禁止提交到公共代码仓库,也不要在对外分发的安装包中内置该令牌
- 生产构建必须移除调试提供器的相关配置,避免App Check防护失效
内容的提问来源于stack exchange,提问作者mathAndCats
相关产品推荐
相关产品推荐

