即时应用程序:"You should have at least one active APK that is mapped to site 'sample.com' via a web 'intent-filter' " 推送到生产环境时

Instant Apps: "You should have at least one active APK that is mapped to site 'sample.com' via a web 'intent-filter' " when pushing to production

我在将免安装应用发布到生产环境时收到错误消息。

我在这里 post 读过这篇文章: 这更具体一些。

上面link中的答案是:

Upload installable APK in alpha, beta or production with same HOST web 'intent-filter'.

我将带有 intent-filter 的可安装 apk 上传到 alpha,并且在将我的即时应用程序发布到预发布版时错误消息消失了,但是当将即时应用程序发布到生产版时,我得到了同样的结果错误。

You should have at least one active APK that is mapped to site 'sample.com' via a web 'intent-filter'.

我带有 default-url intent-filter 的可安装 apk 仅上传到 alpha。但是,我想知道当我尝试将即时应用程序推送到生产环境时,是否需要将带有 intent-filter 的可安装 apk 移至生产环境?

您必须将 app-link 添加到您的 activity。这是它的一个例子。

        <activity
        android:name=".GoodbyeActivity"
        android:label="@string/title_activity_goodbye"
        android:theme="@style/AppTheme">

        <intent-filter
            android:autoVerify="true"
            android:order="1">
            <action android:name="android.intent.action.VIEW" />

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

            <data android:scheme="https" />
            <data android:scheme="http" />
            <data android:host="hello-flavors.instantappsample.com" />
            <data android:pathPrefix="/goodbye" />

        </intent-filter>

    </activity>

您也可以使用App link 辅助工具生成intent-filters。打开它 Select 工具 > 应用程序链接助手。有关详细信息,请访问 https://developer.android.com/studio/write/app-link-indexing.html

您需要至少定义一个 default-url 作为您应用的入口点。我在 <activity> 标签内定义了它,如下所示。

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

原因是安装应用和免安装应用的相同轨道级别之间的行为需要相同。如果用户在下载即时应用程序后使用已安装的应用程序(没有适当的 intent-filters),用户将体验到不同的 URL 解析行为。