Firebase应用分发和Google Play安全签名

4
我已经在我们的项目中使用了Firebase App Distribution提供的“App Tester”安卓应用程序进行设置,这是很棒的。尽管我发现一个主要问题,我知道很多使用这个工具的人都会遇到,并且从我看到的情况来看,实际上没有人知道它背后的原因。
问题是:我从Play商店下载我的应用程序。然后我在Firebase App Distribution上部署了一个新版本的应用程序进行测试,进入App Tester,点击我的应用程序并点击安装。我收到“安装失败”的错误,没有更多详细信息。为了解决这个问题,我必须从我的手机上卸载该应用程序,然后再次点击安装以成功安装。
这背后的原因是Android不允许使用不同密钥签名的APK更新由另一个已签名APK签名的APK。
我从Play商店下载的APK由我的CI签名,但随后由Play商店再次签名,使用他们的签名功能(可以启用/禁用它,但我更喜欢保持启用状态)。Play商店用于再次签名我的APK的密钥是私有的,没有人可以访问它。
但是我在Firebase App Distribution with Fastlane上上传的APK由我的CI签名,而不是Play Store。因此,密钥不同,这就是为什么应用程序测试员无法安装该应用程序的原因。
我能告诉Firebase使用Play Store使用的密钥重新签署我的APK吗?每次我之前从Play Store安装它时都卸载我的应用程序真的很烦人。更重要的是,对于我们公司的测试人员来说,他们不理解为什么会出现这个错误,也不知道该怎么做...
1个回答

0
问题:您使用应用程序分发与测试人员共享的应用程序,其应用程序ID(例如com.xyz.abc)是否与Playstore上的应用程序相同?
在单个设备上不能有两个具有相同应用程序ID的已签名应用程序。 其中一个解决方案将是将开发应用程序ID更新为与生产应用程序ID不同。
例如:
生产应用程序ID - com.xyz.abc
开发应用程序ID - com.xyz.abc-dev
这也将使两个应用程序能够共存于同一设备上。

我并不太喜欢在测试人员的手机上安装两个不同的应用程序。即使它们有不同的名称,一些测试人员可能会混淆它们,并在生产APK上测试某个功能,导致时间浪费。我的目标是在Android上实现与iOS Testflight相同的行为。它不应该因为安装的APK来自Play Store而失败。 - Charly Lafon
Testflight 用于进行 beta 测试。在这种情况下,您可能想要查看 Android 的 Playstore beta 版本。 - Rishabh Saxena
我提到了Testflight是因为它的工作方式,而不是因为我想要一个带有APK验证时间的测试环境。我想要一个类似Testflight的测试应用程序,上传APK后立即可供测试者使用,没有延迟。 - Charly Lafon

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接