Play 商店不允许安装我的应用的两个版本



尝试从 Play 商店安装时,我收到"无法安装"对话框,而其他版本已经安装。

我有两种口味:免费和付费。两者都有不同的应用程序 ID,如下所示:

free {
applicationId "aaa.bbb.ccc.free"
}
paid {
applicationId "aaa.bbb.ccc.paid"
}

如果安装了付费,我无法安装免费,反之亦然。

在代码中,我基本上使用付费版本的主风格,并在免费风格中添加广告内容。

FreeActivity1 继承 Activity1,FreeActivity2 继承自 Activity2

我的主要清单(用于付费口味):

<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="aaa.bbb.ccc"
android:sharedUserId="aaa.bbb.ccc">
...
<application ...>
<activity
android:name=".Activity1">
<intent-filter>
<action android:name="android.intent.action.MAIN"/>
<action android:name="android.intent.action.VIEW"/>
<category android:name="android.intent.category.LAUNCHER"/>
</intent-filter>
</activity>
<activity-alias
android:name="${applicationId}.act1"
android:targetActivity=".Activity1"/>
<activity
android:name=".ddd.Activity2"/>
<activity-alias
android:name="${applicationId}.act2"
android:targetActivity=".ddd.Activity2"/>
</application>

和我的免费清单:

<manifest xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools"
package="aaa.bbb.ccc"
android:sharedUserId="aaa.bbb.ccc">
<application tools:ignore="GoogleAppIndexingWarning">
<activity
android:name=".FreeActivity1">
<intent-filter>
<action android:name="android.intent.action.MAIN"/>
<action android:name="android.intent.action.VIEW"/>
<category android:name="android.intent.category.LAUNCHER"/>
</intent-filter>
</activity>
<activity-alias
tools:replace="android:targetActivity"
android:name="${applicationId}.act1"
android:targetActivity=".FreeActivity1"/>
<activity
tools:node="remove"
android:name=".Activity1"
/>
<activity
android:name=".ddd.FreeActivity2"/>
<activity-alias
tools:replace="android:targetActivity"
android:name="${applicationId}.act2"
android:targetActivity=".ddd.FreeActivity2"/>
<activity
tools:node="remove"
android:name=".ddd.Activity2"
/>
...
</application>

我在 Play 管理中心内有 2 个应用程序,并且发布得很好,但我的功能之一是将用户设置从免费版本迁移到付费版本。事实上,我只是无法通过Google Play在同一台设备上安装两者。它适用于 apk 安装。

切线相关也许(?):我有两个谷歌帐户,可以访问Play商店。Play商店告诉我,在其中一个帐户上,我的Pro版本与我的设备不兼容(与我在其他帐户上使用的设备相同)。我免费使用和付费使用相同的功能/权限(互联网)。

帮助将不胜感激!提前感谢!

编辑:

我已经用logcat调试了游戏商店的安装。我收到以下错误:

安装 aaa.bbb.ccc.free

时出现错误 -505:INSTALL_FAILED_SHARED_USER_INCOMPATIBLE:无法在/data/app/aaa.bbb.ccc.freeXXXXXXXXXXXX 中安装软件包:软件包 aaa.bbb.ccc.free 没有与共享用户 aaa.bbb.ccc 中的签名匹配的签名;忽略!

看起来您的包名称在付费和免费清单中都是相同的。尝试在那里更改它。

好吧,这实际上是一个非常糟糕的问题:

我一起使用了sharedUserId和Google App Signing。这是不可能的(请参阅在操作中修改),并且 Play 管理中心中有 0 条警告。

由于自动签名过程始终为应用商店中的每个应用生成一个新密钥,因此这些签名将不匹配,但如果它们具有相同的 sharedUserId,则 Play 商店会要求它们匹配。

我要么删除所有需要 sharedUserId 的功能,要么取消发布我的两个应用程序,并使用不同的应用程序 ID 创建两个新版本并使用手动签名。

最新更新