Android Instant App 已上传但无法推出
Android Instant App is uploaded but can not be roll out
更新:20170703
使用 Android Studio 3.0 金丝雀 5
修改了一些 AndroidManifest 和 build.gradle 文件,
将 Base 的 AndroidManifest 和 App 的 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的问题。
通过 "live chat" 联系了 google Playstore 支持,承诺会在几天后回复,但仍然没有回复。
------ 旧 POST 下面 ------
我正在使用 Android Studio 3.0 Canary 4(预览版)。
Installable APK 和 Instant App (zip) 都已上传成功。
可安装的 APK 已经推出。
数字资产 Link json 文件已在 https://example.com/.well-known/assetlinks.json
中上传并验证
我只有1个Base模块(功能模块),Base里面的AndroidManifest只有1个activity:
<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' 尚未通过数字资产 Link 协议 link 连接到您的应用程序。请 link 您的站点通过数字资产 Link 协议连接到您的应用程序。
警告
在开始发布此版本之前检查这些警告。
注意:example.com只是为了替换我的真实域名。
请帮助我了解问题出在哪里以及如何解决?
您需要在深度 link 中使用路径模式:
确保您使用的是实际域而不是 example.com
https://example.com/instantapp
如果您使用的是 Google Play App Signing,那么您的本地密钥库包含上传密钥,它与 App 签名密钥不同。
在这种情况下,使用 keytool 获得的 SHA256 指纹不是您应该包含在数字资产 Link json 文件中的指纹。
可以在 Google Play 控制台的发布管理/应用签名/应用签名证书下获取正确的 SHA256 指纹。
Play Console Screenshot
更新:20170703 使用 Android Studio 3.0 金丝雀 5 修改了一些 AndroidManifest 和 build.gradle 文件,
将 Base 的 AndroidManifest 和 App 的 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的问题。
通过 "live chat" 联系了 google Playstore 支持,承诺会在几天后回复,但仍然没有回复。
------ 旧 POST 下面 ------ 我正在使用 Android Studio 3.0 Canary 4(预览版)。
Installable APK 和 Instant App (zip) 都已上传成功。
可安装的 APK 已经推出。
数字资产 Link json 文件已在 https://example.com/.well-known/assetlinks.json
中上传并验证我只有1个Base模块(功能模块),Base里面的AndroidManifest只有1个activity:
<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' 尚未通过数字资产 Link 协议 link 连接到您的应用程序。请 link 您的站点通过数字资产 Link 协议连接到您的应用程序。
警告
在开始发布此版本之前检查这些警告。
注意:example.com只是为了替换我的真实域名。
请帮助我了解问题出在哪里以及如何解决?
您需要在深度 link 中使用路径模式: 确保您使用的是实际域而不是 example.com
https://example.com/instantapp
如果您使用的是 Google Play App Signing,那么您的本地密钥库包含上传密钥,它与 App 签名密钥不同。
在这种情况下,使用 keytool 获得的 SHA256 指纹不是您应该包含在数字资产 Link json 文件中的指纹。
可以在 Google Play 控制台的发布管理/应用签名/应用签名证书下获取正确的 SHA256 指纹。
Play Console Screenshot