3

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

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

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

4

2 回答 2

2

在调查了一段时间后,在 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" />

这样 Beta 版应用程序就有自己的权限文件夹可以写入。

希望这可以帮助那里的人!

于 2017-08-14T06:05:27.977 回答
1

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

于 2017-07-12T19:58:08.513 回答