Приложение 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