Android Instant App - ошибка выпуска / развертывания Play Console и DAL(цифровая ссылка на актив) не связаны

Я схожу с ума, пытаясь понять, почему магазин игр не примет мою мгновенную сборку приложения. Я успешно развернул стандартную версию приложения Alpha для тестировщиков, поскольку это является обязательным условием для выпуска мгновенного приложения. Я пытаюсь развернуть мгновенное приложение для разработки. Что я делаю неправильно? Я попытался добавить как можно больше деталей. Пожалуйста, дайте мне знать, если вам нужна дополнительная информация.

Нужно ли использовать API-интерфейс Digital Asset Link по следующей ссылке для производственного мгновенного приложения или это для чего-то другого? https://console.developers.google.com/apis/api/digitalassetlinks.googleapis.com/overview

Я получаю следующую ошибку при загрузке мгновенной сборки приложения на игровую приставку:

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

Одна вещь, в которой я немного запутался, это то, почему, когда я нажимаю на ссылку и проверяю, что получаю сообщение об ошибке "Ошибка добавления операторов активов ", как показано на следующем рисунке: Не удалось добавить отчеты об активах Я замечаю, что когда я нажимаю на ссылку и подтверждаю кнопку, он изменяет файл strings.xml в базе и добавляет следующую строку: <string name="asset_statements" translatable="false">[{\n \"relation\": [\"delegate_permission/common.handle_all_urls\"],\n \"target\": {\n \"namespace\": \"web\",\n \"site\": \"https://example.com\",\n }\n}]</string>

У меня есть следующее в манифесте базы, контрольного списка и советника под тегом приложения: <meta-data android:name="asset_statements" android:resource="@string/asset_statements"/>

Описание и структура проекта:

Описание приложения: Это подтверждение концепции приложения. Устанавливаемое приложение откроет основное действие с двумя кнопками, которые при щелчке приведут вас к контрольному списку или к действию советника. Существует два мгновенных приложения: instantapp-checklist переходит к действию контрольного списка, а instantapp (советник) переходит к действию советника.

  • Есть 3 функциональных модуля: mainfeature, контрольный список, советник
  • Есть 2 мгновенных приложения: instantapp-checklist, instantapp (советник)

Структура проекта

  • Пакет моего устанавливаемого приложения: blah.blah1.blah2.myappname
  • Идентификатор пакета мгновенного приложения моего контрольного списка: blah.blah1.blah2.myappname.checklist
  • Идентификатор пакета мгновенного приложения моего советника: blah.blah1.blah2.myappname.advisor

Мой assetlinks.json это:

[{
  "relation": ["delegate_permission/common.handle_all_urls"],
  "target": {
    "namespace": "android_app",
    "package_name": "blah.blah1.blah2.myappname.checklist",
    "sha256_cert_fingerprints":
    ["AA:...:53"]
  }
},
{
  "relation": ["delegate_permission/common.handle_all_urls"],
  "target": {
    "namespace": "android_app",
    "package_name": "blah.blah1.blah2.myappname.advisor",
    "sha256_cert_fingerprints":
    ["AA:...:53"]
  }
}]

В моем контрольном листе манифеста внутри тега активности есть следующее:

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

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

            <category android:name="android.intent.category.LAUNCHER"/>
        </intent-filter>
        <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"
                android:host="example.com"
                android:pathPattern="/checklist.html"/>
            <data android:scheme="https"/>
        </intent-filter>

Самостоятельные проверки я сделал:

  • Мгновенное приложение было подписано с моим хранилищем ключей, а не с ключом отладки. Я проверил, чтобы убедиться, что приложение для быстрого доступа и assetlinks.json показывают одинаковый отпечаток sha256.
  • Файл robots.txt позволяет выполнять поиск assetlinks.json всеми роботами.
  • assetlinks.json имеет действительный сертификат и позволяет https
  • Тип содержимого заголовка assetlinks.json - это application/json
  • Я не подписан на "Подписание приложения Google Play"
  • Я использовал следующий сайт, чтобы проверить свое утверждение, и оно прошло успешно: https://developers.google.com/digital-asset-links/tools/generator

Все помогает, спасибо заранее!!!

2 ответа

Решение

В файле assetlinks.json для поля имя_пакета задано значение blah.blah1.blah2.myappname.checklist.

Однако упомянутое выше заключается в том , что идентификатором устанавливаемого приложения является blah.blah1.blah2.myappname. Это означает, что имя_пакета в AndroidManifest.xml имеет значение blah.blah1.blah2.myappname.

Они должны совпадать. Blah.blah1.blah2.myappname необходимо добавить в assetlinks.json на сервере.

В strings.xml измените asset_statements:

<string name="asset_statements" translatable="false">[{\n  \"relation\": [\"delegate_permission/common.handle_all_urls\"],\n  \"target\": {\n    \"namespace\": \"web\",\n    \"site\": \"https://qaapps.cio.ny.gov/apps/sandbox/james/hesc/checklist.html\",\n  }\n},{\n  \"relation\": [\"delegate_permission/common.handle_all_urls\"],\n  \"target\": {\n    \"namespace\": \"web\",\n    \"site\": \"https://qaapps.cio.ny.gov/apps/sandbox/james/hesc/advisor.html\",\n  }\n}]</string>

Вот некоторые другие заметки, которые помогли мне найти решение:

  • Я использовал следующую командную строку, чтобы проверить, работает ли мгновенное приложение: adb shell am start -a android.intent.action.VIEW -d "https://example.com/checklist/"
  • На устройстве я зашел в " Настройки"> "Google"> "Мгновенные приложения" и щелкнул переключатель, чтобы удалить / отключить мгновенные приложения, а затем снова щелкнул его, чтобы включить его. Также зашли в настройки Chrome (Настройки> Конфиденциальность> Очистить данные просмотра), чтобы очистить все данные за временной диапазон, Все время.
  • При вводе URL-адреса для мгновенного приложения в Chrome открывается только веб-сайт, а не мгновенное приложение. Если я нажимаю на ссылку на мгновенное приложение на веб-сайте, оно открывает мгновенное приложение вместо веб-сайта.

Странно, у меня была такая же проблема. Решение было простым;

Как упомянуто @olearyj234, кнопка Link and Verify добавляет строку в конец string.xml.

Я просто удалил новую строку в string.xml и нажал кнопку "Связать и проверить".

Другие вопросы по тегам