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 и нажал кнопку "Связать и проверить".