如果存在生产版本,则不会安装针对Android的Crashlytics Beta版本:';该包与同名的现有包冲突';

如果存在生产版本,则不会安装针对Android的Crashlytics Beta版本:';该包与同名的现有包冲突';,android,crashlytics-android,crashlytics-beta,Android,Crashlytics Android,Crashlytics Beta,我们的团队通过Crashlytics发布测试版,我们大多数人都在手机上安装了生产版。如果不删除生产应用程序,我们无法安装测试版。(两个版本都有不同的applicationId,如: 产品:com.abc 测试版:com.abc.beta) 我们尝试使用相同的密钥库(作为生产密钥库)和不同的密钥库来签署beta版本,但它没有改变任何东西 有没有办法在同一台设备上同时安装测试版和生产版?Mike来自Fabric。苹果有一项限制,仅允许Testflight或Mobile Device Manager安

我们的团队通过Crashlytics发布测试版,我们大多数人都在手机上安装了生产版。如果不删除生产应用程序,我们无法安装测试版。(两个版本都有不同的applicationId,如: 产品:
com.abc
测试版:
com.abc.beta

我们尝试使用相同的密钥库(作为生产密钥库)和不同的密钥库来签署beta版本,但它没有改变任何东西


有没有办法在同一台设备上同时安装测试版和生产版?

Mike来自Fabric。苹果有一项限制,仅允许Testflight或Mobile Device Manager安装具有相同捆绑包id的应用程序,因此,如果捆绑包id相同,我们将无法安装在从应用商店安装的版本上。例如,您无法在app Store生产版本上安装应用程序的beta生产版本

在调查了一段时间后,多亏了Fabric团队的帮助,我终于找到了问题,也找到了解决问题的方法

使用adb logcat,我发现了故障的潜在错误:

Package attempting to redeclare permission com.abc.permission.C2D_MESSAGE already owned by 
测试版应用程序似乎正在尝试写入生产版本所拥有的同一权限文件。为了避免这种情况,我编辑了我的
AndroidManifest.xml
,如下所示:

<uses-permission android:name="${applicationId}.permission.C2D_MESSAGE" />
<permission android:name="${applicationId}.permission.C2D_MESSAGE" android:protectionLevel="signature" />

这样测试版应用程序就有了自己的权限文件夹来写入


希望这有助于其他人

谢谢你的回复,但这不是我要问的。首先,我们有不同的产品和测试版捆绑ID,目前在iOS上安装这两个捆绑ID没有问题。然而,我们不能在Android上做同样的事情。我们不想在prod上安装beta版本,只想将它们分别安装在同一台设备上。这有可能实现吗?抱歉耽搁了,我很抱歉。您有不同的软件包名称,但无法安装Android的测试版?这应该没问题,如果是这样的话,请发送电子邮件支持(at)fabric(dot)io,这样我们可以在安装失败时查看Logcat中的一些日志。