我们的团队通过Crashlytics分发beta版本,我们大多数人都在手机上安装了生产版本。我们无法在不删除生产应用的情况下安装测试版。 (两个版本都有不同的applicationId,如:
prod:com.abc
测试版:com.abc.beta
)
我们尝试使用相同的密钥库(作为生产版)以及另一个密钥库来签署测试版本,但它不会改变任何内容。
有没有办法在同一台设备上同时安装测试版和生产版?
答案 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生产版本。