为什么firebase-appcheck-debug-testing无法在SDK版本31下构建?

hmtdttj4  于 2022-11-17  发布在  其他
关注(0)|答案(1)|浏览(117)

当我按照Google Play的要求在SDK版本31下构建依赖于Firebase App Check和调试提供程序的应用时,我收到了一个清单合并错误_:

  1. Warning:
  2. Package name 'com.google.android.play.core.client' used in: com.google.android.play:integrity:1.0.1, com.google.android.play:core:1.9.1.
  3. AndroidManifest.xml Error:
  4. android:exported needs to be explicitly specified for <activity>. Apps targeting Android 12 and higher are required to specify an explicit value for `android:exported` when the corresponding component has an intent filter defined. See https://developer.android.com/guide/topics/manifest/activity-element#exported for details.
eeq64g8w

eeq64g8w1#

很显然,在Google,firebase-appcheck-debug-testing dep依赖于androidx.test:core:1.2.0,直到1.5.0,我们才在必要的清单元素上正确地设置android:exported。因此,任何依赖于firebase-appcheck-debug-testing的项目都不会在targetSdkVersion 31下构建。

  1. +--- com.google.firebase:firebase-appcheck-debug-testing -> 16.1.0
  2. | +--- androidx.test:core:1.2.0

如果您直接从Maven存储库下载POM,您可以看到以下内容:

  1. <dependency>
  2. <groupId>androidx.test</groupId>
  3. <artifactId>core</artifactId>
  4. <version>1.2.0</version>
  5. <scope>compile</scope>
  6. <type>aar</type>
  7. </dependency>

我不清楚为什么firebase-appcheck-debug-testing没有更新来纠正这一点。我猜他们确实建议永远不要在生产中使用DebugAppCheckProviderFactory,这是实现这一点的一种方法(同时也防止在本地构建应用程序)!
要解决此问题,请在build.gradle中手动强制使用1.5.0版:

  1. implementation 'androidx.test:core:1.5.0'
展开查看全部

相关问题