在什么情况下,Google Play控制台中的“即时应用”会触发“不可升级到已安装的应用”消息

时间:2018-03-08 23:22:17

标签: android google-play android-instant-apps

我正在尝试将即时应用上传到Google Play的制作轨道。我在生产中有一个相关的安装apk,以及预发布轨道中的即时应用程序。当我尝试将即时应用程序发布到生产环境时,我收到错误:“无法升级到已安装的应用程序”(与Google Play Console error - Non-upgradable to installed app中描述的错误相同)

我尝试在链接线程中遵循不同的建议,但我无处可去。当我运行aapt dump badging时,我的目标和min sdks(分别为26和19)在即时和可安装之间显示相同,除了版本代码(我给我的即时应用程序版本代码为1,而可安装版本代码为99),此命令的输出对于每个apk都完全相同。就链接线程中讨论的权限而言,没有任何内容可以跳出来。我使用的唯一权限是uses-permission: name='android.permission.INTERNET'uses-permission: name='android.permission.ACCESS_NETWORK_STATE'

使用Analyze APK检查清单时,除版本代码和添加targetSandboxVersion=2外,这些清单也相同。这就是瞬间看起来的样子(我放置了example.com的寄存器和某些值的“东西”)

<?xml version="1.0" encoding="utf-8"?>
<manifest
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:versionCode="1"
    android:versionName="7.7.7"
    android:targetSandboxVersion="2"
    package="com.android.example_app">

    <uses-sdk
        android:minSdkVersion="19"
        android:targetSdkVersion="26" />

    <uses-permission
        android:name="android.permission.INTERNET" />

    <uses-permission
        android:name="android.permission.ACCESS_NETWORK_STATE" />

    <supports-screens
        android:smallScreens="false"
        android:normalScreens="true"
        android:largeScreens="true"
        android:xlargeScreens="true"
        android:requiresSmallestWidthDp="200" />

    <application
        android:theme="stuff"
        android:label="stuff"
        android:icon="stuff"
        android:allowBackup="true"
        android:networkSecurityConfig="stuff">

        <activity
            android:label="stuff"
            android:name="com.android.example_app.MainActivity"
            android:launchMode="2"
            android:configChanges="0x4a0"
            android:allowTaskReparenting="false"
            android:windowSoftInputMode="0x22">

            <intent-filter
                android:autoVerify="true">

                <action
                    android:name="android.intent.action.VIEW" />

                <category
                    android:name="android.intent.category.DEFAULT" />

                <category
                    android:name="android.intent.category.BROWSABLE" />

                <data
                    android:scheme="http" />

                <data
                    android:scheme="https" />

                <data
                    android:host="www.example.com" />
            </intent-filter>

            <intent-filter
                android:autoVerify="true">

                <action
                    android:name="android.intent.action.VIEW" />

                <category
                    android:name="android.intent.category.DEFAULT" />

                <category
                    android:name="android.intent.category.BROWSABLE" />

                <data
                    android:scheme="http" />

                <data
                    android:scheme="https" />

                <data
                    android:host="www1.example.com" />
            </intent-filter>

            <meta-data
                android:name="default-url"
                android:value="https://www.example.com" />

            <intent-filter>

                <action
                    android:name="android.intent.action.MAIN" />

                <category
                    android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>

        <activity
            android:name="net.hockeyapp.android.UpdateActivity" />

        <activity
            android:label="WebviewActivity"
            android:name="com.android.example_app.architecture.Pages.CustomChromeTabs.WebviewActivity"
            android:parentActivityName="com.android.example_app.architecture.MainActivity">

            <meta-data
                android:name="android.support.PARENT_ACTIVITY"
                android:value=".architecture.MainActivity" />
        </activity>

        <service
            android:name="org.openudid.OpenUDID_service">

            <intent-filter>

                <action
                    android:name="org.openudid.GETUDID" />
            </intent-filter>
        </service>

        <meta-data
            android:name="aia-compat-api-min-version"
            android:value="1" />
    </application>
</manifest>

还有什么我可以看一下来解决这个错误,或者我可以通过播放控制台获取更多关于出错的信息吗?该错误消息似乎涵盖的不仅仅是它声称的目标sdk验证。并且要明确的是,即时应用程序在预发布中运行良好,并且可安装在alpha中一直运行到生产中。

感谢您的帮助!

编辑:

即时应用aapt dump badging output

package: name='com.android.example_app' versionCode='1' versionName='7.7.7' platformBuildVersionName=''
sdkVersion:'19'
targetSdkVersion:'26'
uses-permission: name='android.permission.INTERNET'
uses-permission: name='android.permission.ACCESS_NETWORK_STATE'
application-label:'example'
application-label-af:'example'
application-label-am:'example'
application-label-ar:'example'
application-label-az-AZ:'example'
application-label-be-BY:'example'
application-label-bg:'example'
application-label-bn-BD:'example'
application-label-bs-BA:'example'
application-label-ca:'example'
application-label-cs:'example'
application-label-da:'example'
application-label-de:'example'
application-label-el:'example'
application-label-en-AU:'example'
application-label-en-GB:'example'
application-label-en-IN:'example'
application-label-es:'example'
application-label-es-US:'example'
application-label-et-EE:'example'
application-label-eu-ES:'example'
application-label-fa:'example'
application-label-fi:'example'
application-label-fr:'example'
application-label-fr-CA:'example'
application-label-gl-ES:'example'
application-label-gu-IN:'example'
application-label-hi:'example'
application-label-hr:'example'
application-label-hu:'example'
application-label-hy-AM:'example'
application-label-in:'example'
application-label-is-IS:'example'
application-label-it:'example'
application-label-iw:'example'
application-label-ja:'example'
application-label-ka-GE:'example'
application-label-kk-KZ:'example'
application-label-km-KH:'example'
application-label-kn-IN:'example'
application-label-ko:'example'
application-label-ky-KG:'example'
application-label-lo-LA:'example'
application-label-lt:'example'
application-label-lv:'example'
application-label-mk-MK:'example'
application-label-ml-IN:'example'
application-label-mn-MN:'example'
application-label-mr-IN:'example'
application-label-ms-MY:'example'
application-label-my-MM:'example'
application-label-nb:'example'
application-label-ne-NP:'example'
application-label-nl:'example'
application-label-pa-IN:'example'
application-label-pl:'example'
application-label-pt:'example'
application-label-pt-BR:'example'
application-label-pt-PT:'example'
application-label-ro:'example'
application-label-ru:'example'
application-label-si-LK:'example'
application-label-sk:'example'
application-label-sl:'example'
application-label-sq-AL:'example'
application-label-sr:'example'
application-label-sr-Latn:'example'
application-label-sv:'example'
application-label-sw:'example'
application-label-ta-IN:'example'
application-label-te-IN:'example'
application-label-th:'example'
application-label-tl:'example'
application-label-tr:'example'
application-label-uk:'example'
application-label-ur-PK:'example'
application-label-uz-UZ:'example'
application-label-vi:'example'
application-label-zh-CN:'example'
application-label-zh-HK:'example'
application-label-zh-TW:'example'
application-label-zu:'example'
application-icon-120:'res/drawable-ldpi-v4/ic_launcher.png'
application-icon-160:'res/drawable-mdpi-v4/ic_launcher.png'
application-icon-240:'res/drawable-hdpi-v4/ic_launcher.png'
application-icon-320:'res/drawable-xhdpi-v4/ic_launcher.png'
application-icon-480:'res/drawable-xhdpi-v4/ic_launcher.png'
application-icon-640:'res/drawable-xhdpi-v4/ic_launcher.png'
application: label='example' icon='res/drawable-mdpi-v4/ic_launcher.png'
launchable-activity: name='com.android.example_app.architecture.MainActivity'  label='example' icon=''
feature-group: label=''
  uses-feature: name='android.hardware.faketouch'
  uses-implied-feature: name='android.hardware.faketouch' reason='default feature for all apps'
main
other-activities
other-services
supports-screens: 'normal' 'large' 'xlarge'
supports-any-density: 'true'
requires-smallest-width:'200'
locales: '--_--' 'af' 'am' 'ar' 'az-AZ' 'be-BY' 'bg' 'bn-BD' 'bs-BA' 'ca' 'cs' 'da' 'de' 'el' 'en-AU' 'en-GB' 'en-IN' 'es' 'es-US' 'et-EE' 'eu-ES' 'fa' 'fi' 'fr' 'fr-CA' 'gl-ES' 'gu-IN' 'hi' 'hr' 'hu' 'hy-AM' 'in' 'is-IS' 'it
' 'iw' 'ja' 'ka-GE' 'kk-KZ' 'km-KH' 'kn-IN' 'ko' 'ky-KG' 'lo-LA' 'lt' 'lv' 'mk-MK' 'ml-IN' 'mn-MN' 'mr-IN' 'ms-MY' 'my-MM' 'nb' 'ne-NP' 'nl' 'pa-IN' 'pl' 'pt' 'pt-BR' 'pt-PT' 'ro' 'ru' 'si-LK' 'sk' 'sl' 'sq-AL' 'sr' 'sr-Latn'
 'sv' 'sw' 'ta-IN' 'te-IN' 'th' 'tl' 'tr' 'uk' 'ur-PK' 'uz-UZ' 'vi' 'zh-CN' 'zh-HK' 'zh-TW' 'zu'
densities: '120' '160' '240' '320' '480' '640'

可安装aapt dump badging output

package: name='com.android.example_app' versionCode='99' versionName='7.7.7' platformBuildVersionName=''
sdkVersion:'19'
targetSdkVersion:'26'
uses-permission: name='android.permission.INTERNET'
uses-permission: name='android.permission.ACCESS_NETWORK_STATE'
application-label:'example'
application-label-af:'example'
application-label-am:'example'
application-label-ar:'example'
application-label-az-AZ:'example'
application-label-be-BY:'example'
application-label-bg:'example'
application-label-bn-BD:'example'
application-label-bs-BA:'example'
application-label-ca:'example'
application-label-cs:'example'
application-label-da:'example'
application-label-de:'example'
application-label-el:'example'
application-label-en-AU:'example'
application-label-en-GB:'example'
application-label-en-IN:'example'
application-label-es:'example'
application-label-es-US:'example'
application-label-et-EE:'example'
application-label-eu-ES:'example'
application-label-fa:'example'
application-label-fi:'example'
application-label-fr:'example'
application-label-fr-CA:'example'
application-label-gl-ES:'example'
application-label-gu-IN:'example'
application-label-hi:'example'
application-label-hr:'example'
application-label-hu:'example'
application-label-hy-AM:'example'
application-label-in:'example'
application-label-is-IS:'example'
application-label-it:'example'
application-label-iw:'example'
application-label-ja:'example'
application-label-ka-GE:'example'
application-label-kk-KZ:'example'
application-label-km-KH:'example'
application-label-kn-IN:'example'
application-label-ko:'example'
application-label-ky-KG:'example'
application-label-lo-LA:'example'
application-label-lt:'example'
application-label-lv:'example'
application-label-mk-MK:'example'
application-label-ml-IN:'example'
application-label-mn-MN:'example'
application-label-mr-IN:'example'
application-label-ms-MY:'example'
application-label-my-MM:'example'
application-label-nb:'example'
application-label-ne-NP:'example'
application-label-nl:'example'
application-label-pa-IN:'example'
application-label-pl:'example'
application-label-pt:'example'
application-label-pt-BR:'example'
application-label-pt-PT:'example'
application-label-ro:'example'
application-label-ru:'example'
application-label-si-LK:'example'
application-label-sk:'example'
application-label-sl:'example'
application-label-sq-AL:'example'
application-label-sr:'example'
application-label-sr-Latn:'example'
application-label-sv:'example'
application-label-sw:'example'
application-label-ta-IN:'example'
application-label-te-IN:'example'
application-label-th:'example'
application-label-tl:'example'
application-label-tr:'example'
application-label-uk:'example'
application-label-ur-PK:'example'
application-label-uz-UZ:'example'
application-label-vi:'example'
application-label-zh-CN:'example'
application-label-zh-HK:'example'
application-label-zh-TW:'example'
application-label-zu:'example'
application-icon-120:'res/drawable-ldpi-v4/ic_launcher.png'
application-icon-160:'res/drawable-mdpi-v4/ic_launcher.png'
application-icon-240:'res/drawable-hdpi-v4/ic_launcher.png'
application-icon-320:'res/drawable-xhdpi-v4/ic_launcher.png'
application-icon-480:'res/drawable-xhdpi-v4/ic_launcher.png'
application-icon-640:'res/drawable-xhdpi-v4/ic_launcher.png'
application: label='example' icon='res/drawable-mdpi-v4/ic_launcher.png'
launchable-activity: name='com.android.example_app.architecture.MainActivity'  label='example' icon=''
feature-group: label=''
  uses-feature: name='android.hardware.faketouch'
  uses-implied-feature: name='android.hardware.faketouch' reason='default feature for all apps'
main
other-activities
other-services
supports-screens: 'normal' 'large' 'xlarge'
supports-any-density: 'true'
requires-smallest-width:'200'
locales: '--_--' 'af' 'am' 'ar' 'az-AZ' 'be-BY' 'bg' 'bn-BD' 'bs-BA' 'ca' 'cs' 'da' 'de' 'el' 'en-AU' 'en-GB' 'en-IN' 'es' 'es-US' 'et-EE' 'eu-ES' 'fa' 'fi' 'fr' 'fr-CA' 'gl-ES' 'gu-IN' 'hi' 'hr' 'hu' 'hy-AM' 'in' 'is-IS' 'it
' 'iw' 'ja' 'ka-GE' 'kk-KZ' 'km-KH' 'kn-IN' 'ko' 'ky-KG' 'lo-LA' 'lt' 'lv' 'mk-MK' 'ml-IN' 'mn-MN' 'mr-IN' 'ms-MY' 'my-MM' 'nb' 'ne-NP' 'nl' 'pa-IN' 'pl' 'pt' 'pt-BR' 'pt-PT' 'ro' 'ru' 'si-LK' 'sk' 'sl' 'sq-AL' 'sr' 'sr-Latn'
 'sv' 'sw' 'ta-IN' 'te-IN' 'th' 'tl' 'tr' 'uk' 'ur-PK' 'uz-UZ' 'vi' 'zh-CN' 'zh-HK' 'zh-TW' 'zu'
densities: '120' '160' '240' '320' '480' '640'

Edit2:我还验证了即时应用和可安装应用的可用国家/地区匹配。

1 个答案:

答案 0 :(得分:0)

您可以在我发布的错误报告链接中看到这一点,但问题最终是谷歌游戏商店验证的一些错误。在清单中将smallScreens设置为false是一个问题(显然已修复),并且清单中定义的requiresSmallestWidthDp值也是一个问题(即使这两个值在即时和可安装清单中都是相同的)。我不确定requiresSmallestWidthDp片段是否已修复,但播放商店不再支持它,所以我摆脱它。