Приложение Android Instant загружено, но не может быть развернуто

ОБНОВЛЕНИЕ: 20170703 Использование Android Studio 3.0 Canary 5 Изменены некоторые файлы AndroidManifest и build.gradle,

Перемещено изнутри внутрь как для AndroidManifest Base, так и для AndroidManifest приложения, как показано ниже:

<application ...>
    <meta-data android:name="asset_statements" android:resource="@string/asset_statements" />
    <activity ...>
</application>

ресурс asset_statements:

<string name="asset_statements">[{\n  \"relation\": [\"delegate_permission/common.handle_all_urls\"],\n  \"target\": {\n    \"namespace\": \"web\",\n    \"site\": \"https://example.com\",\n  }\n}]</string>

Веб-проверка успешно пройдена (см. Скриншот ниже), загружены новые APK и ZIP (Instant App), но все равно проблема с невозможностью развертывания Instant App.

Обратился в службу поддержки Google PlayStore через "живой чат", обещал, что вернется, но ответа через несколько дней все равно не будет.

------ СТАРЫЙ ПОСТ НИЖЕ ------- Я использую Android Studio 3.0 Canary 4 (превью).

Установочный APK и Instant App (zip) уже успешно загружены.

Устанавливаемый APK уже выпущен.

Json-файл Digital Assets Link уже загружен и проверен по https://example.com/.well-known/assetlinks.json

У меня есть только 1 базовый модуль (функциональный модуль), внутри AndroidManifest базы есть только 1 активность:

<application
        android:allowBackup="true"
        android:icon="@mipmap/ic_launcher"
        android:label="@string/app_name"
        android:roundIcon="@mipmap/ic_launcher"
        android:supportsRtl="true"
        android:theme="@style/AppTheme"
        >

        <activity
            android:name="com.example.test.app.base.activity.MainActivity"
            android:configChanges="locale|layoutDirection|orientation|keyboardHidden|screenSize"
            android:windowSoftInputMode="adjustResize"
            android:launchMode="singleTop"
            >

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

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

            <meta-data
                android:name="asset_statements"
                android:resource="@string/asset_statements" />

            <intent-filter android:order="1" 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="example.com" />
                <data android:pathPattern="/instantapp/.*"/>
            </intent-filter>

        </activity>
</application>

Мои assets_statements определяют в /res/string.xml:

<string name="asset_statements" translatable="false">
        [{
            \"include\": \"https://example.com/.well-known/assetlinks.json\"
        }]
</string>

Поэтому в настоящее время я считаю, что все должно работать нормально, потому что при загрузке в Google Playstore будут отфильтрованы любые проблемы с настройкой, в настоящее время я не могу развернуть приложение Instant App, так как ошибка

Ошибки Устраните эти ошибки перед началом развертывания этого выпуска.

Ваш сайт "mysite.com" не был связан с вашим протоколом протоколом Digital Assets Link. Пожалуйста, свяжите свой сайт через протокол Digital Assets Link с вашим приложением.

Предупреждения

Проверьте эти предупреждения перед началом развертывания этого выпуска.

ПРИМЕЧАНИЕ: example.com предназначен только для замены моего реального домена.

Пожалуйста, помогите мне понять, что не так и как это решить?

2 ответа

Если вы используете приложение Google Play для подписи, тогда ваше локальное хранилище ключей содержит ключ загрузки, который отличается от ключа подписи приложения.

В этом случае отпечаток пальца SHA256, полученный с помощью keytool, не является тем, который следует включать в json-файл Digital Assets Link.

Правильный отпечаток SHA256 можно получить в консоли Google Play в разделе Управление выпусками / Подписание приложения / Сертификат подписи приложения.

Скриншот игровой консоли

Вам нужно использовать шаблон пути в вашей глубокой ссылке: убедитесь, что вы используете свой реальный домен вместо example.com

https://example.com/instantapp
Другие вопросы по тегам