如果生成构建存在,则无法安装适用于Android的Crashlytics Beta版本:'该软件包与现有软件包冲突,名称相同'

时间:2017-07-12 08:38:36

标签: android crashlytics-android crashlytics-beta

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

我们尝试使用相同的密钥库(作为生产版)以及另一个密钥库来签署测试版本,但它不会改变任何内容。

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

2 个答案:

答案 0 :(得分:1)

在对该问题进行了一段时间的调查后,感谢Fabric团队的帮助,我设法找到了问题,并找到了解决问题的方法。

使用adb logcat,我发现了失败的潜在错误:

Package attempting to redeclare permission com.abc.permission.C2D_MESSAGE already owned by 

beta应用程序似乎正在尝试写入生产版本所拥有的同一权限文件。为避免这种情况,我编辑了AndroidManifest.xml,如下所示:

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

这样beta应用就有了自己的权限文件夹来写。

希望这有助于那里的人!

答案 1 :(得分:0)

Mike来自Fabric。 Apple限制仅允许Testflight或移动设备管理器安装具有相同软件包ID的应用程序,因此如果软件包ID是,我们将无法安装从App Store安装的版本相同。例如,您无法在App Store生产版本上安装该应用程序的beta生产版本。