【问题标题】:Play Store having new version of the app, but not showing updatePlay 商店有新版本的应用程序,但没有显示更新
【发布时间】:2015-01-17 04:56:04
【问题描述】:

我的应用程序安装在我的单元格中,版本为 1.0.5(版本代码 9)

在 Google Play 商店中,我可以看到我的应用程序版本为 1.0.7(版本代码 11),但它没有显示按钮更新(它显示的是“打开”按钮)

这是我必须包含在我的应用程序中的东西吗???

这是 Play 商店的错误吗???

是不是配置问题???

我加入了我的 AndroidManifest.xml

<uses-sdk
    android:minSdkVersion="16"
    android:targetSdkVersion="20" />

<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
<uses-permission android:name="com.google.android.providers.gsf.permission.READ_GSERVICES" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="com.spg.googlemaps.permission.MAPS_RECEIVE" />
<uses-permission android:name="android.permission.CAMERA" />
<uses-permission android:name="android.permission.WRITE_SETTINGS" />

<!--
<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" />
<uses-permission android:name="android.permission.WAKE_LOCK" />
<uses-permission android:name="android.permission.BATTERY_STATS" />
-->
<uses-feature
    android:name="android.hardware.camera"
    android:required="true" />
<uses-feature
    android:name="android.hardware.camera.front"
    android:required="false" />

<permission
    android:name="com.spg.googlemaps.permission.MAPS_RECEIVE"
    android:protectionLevel="signature" />

<uses-feature
    android:glEsVersion="0x00020000"
    android:required="true" />

<application
    android:name="com.myapp.MyApplication"
    android:allowBackup="true"
    android:icon="@drawable/ic_launcher"
    android:label="@string/app_name"
    android:logo="@drawable/ic_logo"
    android:theme="@style/Theme.AppCompat" >
    <uses-library android:name="com.google.android.maps" />

    <meta-data
        android:name="com.google.android.gms.version"
        android:value="@integer/google_play_services_version" />

    <activity
        android:name="com.myapp.SplashScreen"
        android:label="@string/app_name"
        android:noHistory="true"
        android:screenOrientation="portrait"
        android:theme="@android:style/Theme.Black.NoTitleBar" >
        <intent-filter>
            <action android:name="android.intent.action.MAIN" />

            <category android:name="android.intent.category.LAUNCHER" />
        </intent-filter>
    </activity>
    <activity
        android:name="com.myapp.LoginActivity"
        android:label="@string/title_activity_login"
        android:noHistory="true"
        android:screenOrientation="portrait"
        android:windowSoftInputMode="adjustResize|stateVisible" >
    </activity>
    <activity
        android:name="com.myapp.DashBoard"
        android:label="@string/app_name"
        android:screenOrientation="portrait" >
    </activity>
    <activity
        android:name="com.myapp.FragmentTabsPdv"
        android:label="@string/app_name"
        android:screenOrientation="portrait" >
        <meta-data
            android:name="android.support.PARENT_ACTIVITY"
            android:value="com.myapp.DashBoard" />
    </activity>

    <meta-data
        android:name="com.google.android.maps.v2.API_KEY"
        android:value="@string/maps_key" />

    <activity
        android:name="com.myapp.RutaActivity"
        android:label="@string/title_activity_ruta"
        android:screenOrientation="portrait" >
        <meta-data
            android:name="android.support.PARENT_ACTIVITY"
            android:value="com.myapp.FragmentTabsPdv" />
    </activity>
    <activity
        android:name="com.myapp.BaseActivity"
        android:label="@string/title_activity_base"
        android:screenOrientation="portrait" >
    </activity>
    <activity
        android:name="com.myapp.SettingsActivity"
        android:label="@string/title_activity_settings"
        android:screenOrientation="portrait" >
        <meta-data
            android:name="android.support.PARENT_ACTIVITY"
            android:value="com.myapp.DashBoard" />
    </activity>
    <activity
        android:name="com.myapp.InformacionPdvActivity"
        android:label="@string/infoPdv"
        android:screenOrientation="portrait" >
        <meta-data
            android:name="android.support.PARENT_ACTIVITY"
            android:value="com.myapp.RutaActivity" />
    </activity>

    <receiver android:name="com.myapp.BaseActivity$NetworkChangeReceiver" >
        <intent-filter>
            <action android:name="android.net.conn.CONNECTIVITY_CHANGE" />
        </intent-filter>
    </receiver>

    <activity
        android:name="com.myapp.MetricaTabs"
        android:label="@string/title_activity_metrica_tabs"
        android:screenOrientation="portrait"
        android:windowSoftInputMode="adjustPan" >
        <meta-data
            android:name="android.support.PARENT_ACTIVITY"
            android:value="com.myapp.RutaActivity" />
    </activity>

    <meta-data
        android:name="com.crashlytics.ApiKey"
        android:value="7d80161d908dd5424f232598dba254c7d2a43307" />

    <activity
        android:name="com.myapp.SendMessageActivity"
        android:label="@string/title_activity_send_message" >
    </activity>
</application>

【问题讨论】:

  • 商店需要几个小时才能上架
  • 是的,但这不是问题。正如我所说,Playstore 已经在公共模式下(不是在管理员模式下)显示了新版本,但它没有显示更新。我昨天上传了apk。
  • 当您卸载/重新安装时,它会下载正确的版本吗?
  • 是的,如果我卸载/重新安装,它正在重新安装新版本。但问题是我的用户不做那个操作
  • 您找到解决方案了吗?我也面临同样的问题。

标签: android google-play


【解决方案1】:

我刚刚发现 Google Play 没有在 Android 11 的设备上显示我的应用更新,因为我的应用的当前版本针对的是 Android 10。

在更专业的术语中,我在 Google Play 上上传和发布的最新版本(我的应用程序)针对的是 Android API 级别 29,它映射到最高 Android 版本 10 的设备。

根据 Google 的说法,我必须将我的应用 Android.manifest 文件更改为面向 Android API 级别 30,以便它与 Android 版本 11 兼容。

执行此操作后,我的 Android 11 用户将开始在 Google Play 商店中看到我的应用更新。

这当然可以概括为一句话:“应用程序的更新仅在 Android 版本和 Android 级别 API 与应用程序的 Android 中定义的目标 Android 级别 API 兼容的设备显示在 Google Play 中。清单文件。”

以下是官方链接:

【讨论】:

    【解决方案2】:

    因此,首先您必须确保以下三点到位: 与您在 google play store 上发布的版本相比,您正在从 android studio 安装完全相同的变体。 您从 android studio 安装的应用程序的“版本代码”较低 您使用的是完全相同的签名密钥。 第三点很可能是阻止它起作用的原因。问题是,如果您使用应用程序包作为发布格式,则在您上传包时尚未创建该 apk,它只会在稍后阶段创建和签名,当应用程序即将分发到特定设备。 不幸的是,就像我的情况一样,即使您使用完全相同的密钥对应用程序进行签名,签名仍然可能不会完全匹配,原因是如果您已注册 Google Play 商店签名,谷歌将添加一些元数据:“它确实插入了少量的元数据,有助于验证分发的来源和完整性。这种元数据有两种形式:对于上传到 Google Play 的所有应用程序,Play 一直在签名块之后添加安全元数据启用授权 P2P 应用共享等功能。我们最初在 2017 年的一篇博文中宣布了这一点。对于作为应用包上传的应用,我们将通过引入所谓的源标记来提高这种安全性。这个源元数据被插入到应用的bundletool 的清单。当在 Play 的服务器上生成 APK 时,除了您的应用签名密钥之外,它还使用 Google 密钥进行签名。”

    您可以比较两个证书运行相同:

    keytool -list -printcert -jarfile yourapk.apk

    您应该在本地 apk 和 google play apk 上运行上述内容

    根据某些用户的说法,还有第四点需要满足:

    1. 该应用需要至少从 google play 商店安装一次,更新按钮才会显示。

    我还不能为我的应用显示上传按钮

    【讨论】:

    • 我按照所有已知程序更新了我的应用程序。我的应用程序仍然没有显示更新按钮 - 是的,从播放商店等中删除了缓存。我还在一部手机上安装了该应用程序,然后转到另一部手机(安装了以前的版本)去应用程序商店查看如果它会显示更新但它不会:只显示 [open] 按钮。这在此时似乎是一个无法解开的谜团。 ?
    【解决方案3】:

    有几种可能性。首先,清除 google 在您的设备上播放缓存以确保它没有被缓存。如果您仍然看到打开 请按照以下步骤查找问题。您需要 google store 上的 apk 文件与您的版本进行比较。您可以使用从 google play 为您提供 apk 的在线服务。现在有两件事我们需要检查。 证书:您从 google play 下载的 apk 应该与您上传的 apk(或 aab)具有相同的证书。要检查这一点,您可以在您的 apk 上使用 keytool:

    keytool -list -printcert -jarfile yourApp.apk
    

    版本代码:要检查版本代码,请使用 android studio 上的分析工具。当然google play上的版本应该有更大的数字。

    【讨论】:

      【解决方案4】:

      如果您刚刚发布了 Beta 或 Production 版本,那么您必须等待至少两个小时才能在商店中查看您的最新版本。

      一旦获得批准,您肯定会看到更新按钮。

      ======================================

      如果现在申请被批准,但测试设备仍然没有显示更新按钮怎么办?

      这表示 Google Play Store 应用已缓存页面,请尝试通过 kill/close Google Play Store 应用并重新打开 并尝试清除缓存。

      【讨论】:

      • 如果我在内部测试中发布 2 个版本会怎样。在这种情况下我会得到更新选项吗?
      • 是的,您将获得所有添加的测试 Gmail 帐户的更新选项。
      【解决方案5】:

      在您跳入更混乱的解决方案之前,请尝试清除 Play 商店的缓存并查看您应用的 Play 商店列表。 就我而言,它有效。

      【讨论】:

        【解决方案6】:

        确保您在手机中安装的应用不是使用调试密钥库构建的 apk。如果 Play 商店应用证书与已安装的应用证书不匹配,则 Play 商店将始终显示为“打开”按钮而不是“更新”。 当我对调试进行反复试验并签署 apk 的唯一签名 apk 工作时,我意识到了这一点。并且始终使用 versionCode 而不是 versionName 来比较版本。

        【讨论】:

        • 我一直使用签名版!
        • “调试密钥库”是什么意思?您在以发布模式构建并归档项目后生成密钥库。没有“调试”密钥库..只有一个密钥库....
        • @RoyDoron 它是由 android studio 默认生成的,用于每次将项目构建到 apk 中。每次都使用此默认密钥库文件对其进行签名。你可以在 Windows 电脑上的这个位置找到它 C:\Users\XXXXX\.android\debug.keystore
        • 签名包的更新也不会显示。我认为这是因为 google play 在进入应用商店之前从 apk 中剥离了一些信息,这构成了软件包的一些细微差别,这就是它不显示更新的原因。
        • 对我不起作用,我用相同的密钥库文件创建了一个签名的 apk,但它仍然没有在 Play 商店中显示更新按钮。
        【解决方案7】:

        一旦我的应用更新按钮没有显示,我就解决了这个问题,因为我没有直接从 Play 商店安装它。 现在的解决方案是从 Play 商店下载旧版本的应用程序,然后在发布应用程序更新按钮后上传新版本的应用程序。

        【讨论】:

        • 我有同样的问题,我安装了发布 APK 并更新了版本名称和版本代码并上传到了 Play 商店。不过,我得到的是“安装”按钮而不是“更新”。
        • @nimishaV 直接从 Play 商店安装 apk 之后,当您上传新版本时,它会显示更新按钮。
        • 我得到了解决方案,为什么我从其他来源安装 APK 时没有获得更新选项。那是因为应用签名。
        【解决方案8】:

        在 Playstore 更新并发布新版本后,请确保您还按下 Update Roll out 按钮,实际上默认情况下,Playstore 仅推出 50% 的应用程序你的用户。 更新推出按钮可在 Playstore 控制面板以及您的管理版本下方使用

        在 build.gradle 文件中,确保增加 versionCodeversionName

        【讨论】:

          【解决方案9】:

          希望这对某人有所帮助,因为我从这个社区中受益匪浅。

          如果您上次安装的版本来自 Android Studio,您将不会在 Play 商店中看到“更新”按钮。您将看到“打开”按钮。我已经用我的开发手机对此进行了测试,其中该应用程序是使用 Android Studio 直接安装的,也与我的一些实际用户一起使用。我的用户从 Play 商店安装了最新版本。当我推送新的更新时,他们会在 Play 商店中看到“更新”按钮。

          【讨论】:

          • Android Studio 使用调试密钥进行调试,这与用于发布构建的发布密钥不匹配。由于您的 Android Studio 版本与 Play 商店版本的密钥不同,因此不会自动更新
          • 如果您从版本控制台下载旧 APK,您也不会看到“更新”按钮。
          • 对我来说也一样,即使我使用相同的键
          • 谢谢!你救了我的命!是的,您必须在 Play 商店中推送所有更新并从中下载,而不是从 Android Studio 或 Visual Studio Code 的版本进行测试。谷歌有所作为,可能是一个安全问题。我一直有启动按钮,现在我有了更新(注意,在将 appbundle 部署到游戏控制台后,您必须稍等片刻。祝你好运!
          【解决方案10】:

          您必须确保android:versionCode(不是应用程序版本)大于前一个。
          如果版本号较低,Google 不会警告您,并会让您发布较低的版本号。

          示例:
          如果您之前的@​​987654322@ 是132,您必须确保您发布的那个大于132。

          【讨论】:

          • 我的版本代码更大,但仍然没有显示更新。实际上,我认为要求的所有项目都已更改,但更新仍然不想显示。 (截至 2021 年 7 月 2 日)
          【解决方案11】:

          它还有助于清除设置中的 Play Store APP 的缓存。这不应该是必要的。问题是这会阻止以后更新到正确的版本。仅更新版本号,但不更新二进制文件。 Google Play 然后认为一切正常,但它仍然使用旧的 APK。

          【讨论】:

          • google play store哪里可以清除缓存?
          • 抱歉回复晚了,请按照以下说明操作:support.google.com/googleplay/answer/7513003
          • 但是如果我们有一个正在生产中的应用程序和大量的用户群,我们就不能告诉最终用户清除 Playstore 应用程序缓存/数据
          • 嗨。是的,我看到了。我还没有找到任何其他解决方法。因此,您至少应该更新您的常见问题解答或文档/帮助部分,以包含有关清除缓存部分的信息。如果有人发现,请在此处发布回复。
          • 仅供参考 - 清除我在 Play 商店应用程序上的缓存没有帮助。尽管我的 versionCode 和 version 以及所有其他项目都设置正确,但更新不会显示。
          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2020-08-15
          • 2018-04-02
          • 1970-01-01
          相关资源
          最近更新 更多