天道酬勤,学无止境

Instant App - 数字资产链接协议(Instant App - Digital Asset Links Protocol)

问题

每当我尝试将我的免安装应用 apk 上传到 Play 商店时,它都会出现以下错误:

  • 您的网站“www.mywebsitename.com”尚未通过数字资产链接协议链接到您的应用。 请通过数字资产链接协议将您的网站链接到您的应用程序。

但是,每当我执行 https://developers.google.com/digital-asset-links/tools/generator 时,它都会成功与我的应用程序和网站相关联。 知道为什么我会收到此错误吗? 什么可能导致这种情况?

提前感谢您的帮助。

回答1

请检查 Google Play 管理中心是否启用了 Google Play App Signing。 如果启用了 Google Play App Signing,Google Play Console 会将您的应用密钥替换为发布密钥。 您在 Android Studio 上设置的密钥被视为上传密钥。 因此,您需要使用发布密钥修改您的assetlinks.json

回答2

当我从我的调试密钥而不是发布密钥生成一个 assetlinks.json 文件时,这发生在我身上。 它在 Android Studio 中显示为已验证,然后在服务器上失败。 仔细检查您的资产链接文件的签名配置是否正确,以及文件中的指纹是否与您的发布密钥的 SHA256 指纹匹配。 您可以通过运行获取释放密钥的指纹

keytool -list -v -keystore ~/my_keystore.jks

另一个原因可能是您启用了 Play 签名。 在这种情况下,您必须使用开发者控制台中提供的指纹,而不是您在本地为 APK 签名的密钥(本地密钥称为“上传密钥”)。 这在 Android Studio 中根本不明显,因为它的资产链接文件生成器没有给你放置自定义指纹的选项。

回答3

请检查您的网站资产链接文件是否未经过某种形式的身份验证、内部 IP 或被防火墙阻止。 如果数字资产链接文件不可公开访问,则 Play 商店开发者控制台无法访问该文件。

也就是说,请仔细检查https://www.mywebsitename.com/.well-known/assetlinks.json是否可以从外部网络访问(切换到公共 wifi 并验证 json 文件可以正确加载)。

回答4

正如 Jarrod 在评论中所说,如果所有其他方法都失败了,则放弃分阶段发布并重新上传 APK。 刚刚为我工作。

受限制的 HTML

  • 允许的HTML标签:<a href hreflang> <em> <strong> <cite> <blockquote cite> <code> <ul type> <ol start type> <li> <dl> <dt> <dd> <h2 id> <h3 id> <h4 id> <h5 id> <h6 id>
  • 自动断行和分段。
  • 网页和电子邮件地址自动转换为链接。

相关推荐
  • 数字资产链接链接到我的网站(Digital Assets Link link to my website)
    问题 我创建了一个即时应用程序。 我将其上传到我的 Google 控制台,但出现此错误。 www.kochchy.cz 网站尚未通过数字资产链接协议链接到您的应用程序。 将应用程序站点与 Digital Assets Link 链接起来。 [{ "relation": ["delegate_permission/common.handle_all_urls"], "target": { "namespace": "android_app", "package_name": "com.kochchy.instantapptest.app", "sha256_cert_fingerprints":["A4:A6:74:15:F1:3E:38:3F:93:0F:EF:E3:A6:86:8E:7C:25:45:E8:80:5B:5E:35:70:49:20:DB:F8:CB:D4:FC:E0"] } }] apk,即时和可安装都使用相同的 ID: com.kochchy.instantapptest.app (每个都在自己的模块清单中定义) 我的基本模块清单如下所示: <?xml version="1.0" encoding="utf-8"?> <manifest xmlns:android="http://schemas.android.com/apk/res/android"
  • Android Instant App Play 商店错误(Android Instant App Play Store Errors)
    问题 每当我将我的基本 APK 和功能 APK 上传到 Play 商店时,我都会遇到以下错误: 您必须为免安装应用 APK 提供默认网址。 了解更多您的网站“www.example.com”尚未通过数字资产链接协议链接到您的应用。 请通过数字资产链接协议将您的网站链接到您的应用程序。 您应该至少有一个通过网络“意图过滤器”映射到站点“www.example.com”的活动 APK。 这是我的清单文件:(已编辑) <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.ex.example.feature.productdetail"> <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/> <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/> <uses-permission android:name="android.permission.INTERNET"/> <uses-permission android:name="android.permission.ACCESS_COARSE
  • assetlinks.json 中的应用链接意图过滤器不适用于 Android(App links intent filters in assetlinks.json not working on Android)
    问题 我的应用程序定义了意图过滤器,以处理来自我的网站的URL,这些URL由 <intent-filter 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:host="www.host.com" android:scheme="http"/> </intent-filter> <intent-filter 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:host="www.host.com" android:scheme="https"/>
  • Instant App - Digital Asset Links Protocol
    Whenever I tried to upload my instant app apks to Play store, it gives the following error : Your site 'www.mywebsitename.com' has not been linked through the Digital Assets Link protocol to your app. Please link your site through the Digital Assets Link protocol to your app. However, whenever I execute https://developers.google.com/digital-asset-links/tools/generator, it gives success for associating with my app and web site. Any idea why am I getting this error? What may cause this? Thanks for help in advance.
  • Android Instant App - Play Console release/deploy error and DAL(digital Asset Link) not linked
    I'm trying to figure out why the play store will not accept my instant app build. I have successfully deployed an Alpha regular app release to testers since it is a prerequisite to release an instant app. I am trying to deploy a development release instant app. What am I doing wrong? I tried to add as much detail as possible. Do I need to use the Digital Asset Link API service at the following link for a production instant app or is that for something else? https://console.developers.google.com/apis/api/digitalassetlinks.googleapis.com/overview I get the following error when uploading the
  • Google Play App Signing and Instant Apps
    Fairly straight forward question. Does anyone happen to know if Google Play App Signing supports Instant Apps? The reason I ask: Enter your app’s signing config, or select a keystore file. While it’s possible to use a debug config or keystore during testing, the generated Digital Asset Links file won’t be compatible with the release version of your app. If you do upload a Digital Asset Links file that uses a debug config or keystore, then before publishing your app you’ll need to generate and upload a new Digital Asset Links that uses your app’s release key. From Blog post:- How to Create an
  • Android 免安装应用 - 无法从基本特征资产中找到符号(Android Instant Apps - Cannot Find Symbol From Base Feature Asset)
    问题 我有一个基本功能模块和一个功能模块(您可以将其称为“子项”)。 基本功能模块有一个 strings.xml 文件资产,其中包含: <resources> <string name="app_string">Test String</string> </resources> 我尝试在“子”功能的活动中引用此字符串资源,如下所示: int resId = R.string.app_string; Android Studio 似乎尊重这个参考,甚至会在我单击它时将我定向到app_string资源。 但是,在编译期间,我遇到了以下错误消息: Error:(13, 25) error: cannot find symbol variable app_string 我的“子”功能的构建 Gradle 文件也具有依赖项: dependencies { ... implementation project(':base') } 我也试过compile project(':base') ,但没有成功。 有什么明显的我遗漏了吗? 回答1 您的基本模块和子模块具有不同的包名称 - 假设它们是com.example.base和com.example.child 。 每个都包含自己的一组资源,它们的标识符将收集在单独的 R 包中: com.example.base.R com.example
  • Instant app with Dynamic Features always show Disambiguation dialog with 1 option
    I'm experimenting with Dynamic Features and Instant Apps. To navigate between various features, I use Deep Links. Each time I navigate to another Activity, I see the disambiguation dialog for less than 1 second, with 1 app listed. Notice how the options for "Once" and "Always" (in dutch) are greyed out. Sample Github Project I created a minimalistic sample, that matches my current structure on Github. Requires Android Studio 3.5 - RC2 Some Context: I'm quite confident, the deeplinks are configured correct. But since you guys want to check that anyway, here's the configuration: 1 - Manifest:
  • Google Wallet for Digital Goods API 与 Google Play 应用内结算(Google Wallet for Digital Goods API vs Google Play In-app Billing)
    问题 想知道 Google Wallet Billing API 和 Google Play 应用内结算有什么区别。 使用 GooglePlay 应用内购买结算服务与 Google 电子钱包结算 API 相比有什么优势? 我看到 Wallet API 也支持 Android,那么使用 Goole Play IAP 应用程序有什么意义呢? 我正在为应用程序中的数字商品购买实施跨平台解决方案。 我的问题是什么 Wallet API 不通过 Google Play IAP 服务提供? 回答1 有多个 Google Wallet API,它们具有不同的适用性。 以下内容可能对您有所帮助。 Google Play In-App-Billing - 用于从原生 Android 应用程序购买任何数字商品。 http://developer.android.com/google/play/billing/index.html Google Wallet Digital Goods API - 用于从 Web Apps 购买的任何数字商品。 https://developers.google.com/commerce/wallet/digital/ Google Wallet Instant Buy API for Web - 用于从 Web Apps 购买实物或数字商品 -
  • 未找到 Android 运行时异常字体资产(Android Runtime Exception font asset not found)
    问题 这是我的代码和屏幕截图,我正在尝试设置自定义字体字体,但是当字体文件位于资产文件夹中时,出现运行时异常字体资产未找到。 我错过了什么吗? Typeface font = Typeface.createFromAsset(getAssets(), "font/terminal.ttf"); ((TextView) findViewById(R.id.weatherHeadingTV)).setTypeface(font); 回答1 使用此方法: final Typeface typeface = ResourcesCompat.getFont(context, R.font.X); ResourcesCompat类是一种检索资源的兼容方式。 回答2 文件夹的名称应该是“fonts”而不是“font” 请注意,您的“字体”文件夹位于“资产”文件夹下(应该位于“主”文件夹下,而不是“res”文件夹下)我花了很长时间才弄明白这个...... 回答3 文件夹名称必须是“字体”而不是“字体” Typeface typeface = Typeface.createFromAsset(getAssets(), "fonts/" + font); 回答4 您的字体资源文件夹命名不正确。 您应该将文件夹命名为fonts而不是font 。 还要更改您的代码: Typeface font =
  • 跨多个应用的​​ Google Smart Lock(Google Smart Lock across multiple apps)
    问题 我一直试图让 Google 的 Smart Lock 在我拥有的两个应用程序之间工作(不幸的是使用不同的密钥库),但没有任何运气。 在 Smart Lock 中为一个应用程序 ( APP 1 ) 保存密码很简单,执行如下操作: Credential credential = new Credential.Builder(email) .setPassword(password) .build(); Auth.CredentialsApi.save(mCredentialsApiClient, credential).setResultCallback(... 但是,当我尝试在APP 2 中创建CredentialRequest ,它无法读取从APP 1保存的相同凭据。 我试过将accountType设置为它们之间的相同标识符,例如: Credential credential = new Credential.Builder(email) .setPassword(password) .setAccountType(ACCOUNT_TYPE) .build(); Auth.CredentialsApi.save(mCredentialsApiClient, credential).setResultCallback(... ... CredentialRequest
  • 验证时即时应用程序失败(Instant App Fails when verifying)
    问题 每当我单击链接并验证按钮以完成关联部分时,它都会给出: 添加资产报表失败无法将字符串链接到 AndroidManifest 文件未能将 autoVerify 添加到意图过滤器元素成功!... 为什么这三个失败了? 上传apk到Play商店是否有障碍? 谢谢
  • SQLiteAssetHelper 导致甚至在从资产文件夹复制数据库之前立即崩溃(SQLiteAssetHelper causes instant crash before even copying the database from the assets folder)
    问题 https://github.com/jgilfelt/android-sqlite-asset-helper 我正在从SQLiteOpenHelper切换到SQLiteAssetHelper因此我可以使用存储在 /assests 文件夹中的现有数据库。 我的代码非常基本,通常它会创建一个单表数据库,并且可以向其中插入数据并从中检索数据。 我切换到SQLiteAssetHelper ,摆脱了onCreate方法,因为它现在应该只使用一个已经创建的方法,然后再次运行代码,一旦我开始创建我的SQLiteAssetHelper助手类的对象的活动,它就会崩溃,这使得我认为 helper 类有问题,也是因为似乎没有数据库被复制到我的应用程序 /data/data/packagename 文件夹中。 这是我的代码与之前的onCreate()方法,该方法有效,留在注释中。 它以前工作的唯一其他变化是扩展SQLiteOpenHelper而不是SQLiteAssetHelper 。 我的数据库在sourceprojectfolder/assests/databases/productsdb.db 助手类 package com.example.myfirstapp; import java.util.HashMap; import com.readystatesoftware
  • Link is not opened as instant app in some devices
    I had published my instant app in play store. when i click the link from gmail it opens as instant app in some devices (Samsung s6 note ,moto g4 plus) In some devices its not working ,but those devices has Settings->Google->Instant Apps option. but the instant app is not working. my digital asset link is https://abdcoop.mybuzztm.com/.well-known/assetlinks.json Anyone able to suggest what i am missing? I have added my log. I/Timeline: Timeline: Activity_launch_request time:74970969 I/ActivityManager: START u0 {act=android.intent.action.VIEW dat=https://www.google.com/... pkg=com.android.chrome
  • Android Instant App - 完成关联未验证(Android Instant App - Complete the Association does not verified)
    问题 即使我将assetlinks.json文件上传到我的服务器,我也会出现此错误并且无法将我的功能 APK 上传到 Play 商店: 任何的想法? 回答1 发生的事情是,只要您将应用程序模块更改为 baseFeature 为 true 的功能模块,它就会被视为库。 这就是为什么您会遇到前 3 个错误。 刚刚再次制作了功能模块应用程序模块,您将开始看到 4 个正确的检查,而不是 1 个。 据我所知,解决这个问题的方法是在intent-filter中手动添加链接,不要使用Apps Links Assistant。 我做了同样的事情,并且能够在 Play 商店上传我的免安装应用程序。
  • Android Instant Apps - Cannot Find Symbol From Base Feature Asset
    I have a base feature module, and a feature module (you could call it the "child"). The base feature module has a strings.xml file asset containing: <resources> <string name="app_string">Test String</string> </resources> I attempt to reference this string resource in the "child" feature's activity, as below: int resId = R.string.app_string; Android Studio appears to respect this reference, and will even direct me to the app_string resource when I click it. However, during compilation, I am met with the following error message: Error:(13, 25) error: cannot find symbol variable app_string The
  • Digital Assets Link link to my website
    I have created an instant app. I uploaded it to my Google Console, and I got this error. The www.kochchy.cz website has not been linked to your application through the Digital Assets Link protocol. Link the application site with Digital Assets Link. [{ "relation": ["delegate_permission/common.handle_all_urls"], "target": { "namespace": "android_app", "package_name": "com.kochchy.instantapptest.app", "sha256_cert_fingerprints":["A4:A6:74:15:F1:3E:38:3F:93:0F:EF:E3:A6:86:8E:7C:25:45:E8:80:5B:5E:35:70:49:20:DB:F8:CB:D4:FC:E0"] } }] Both apks, instant and installable use same id: com.kochchy
  • 向Rails 4添加自定义字体的官方方式?(Official way of adding custom fonts to Rails 4?)
    问题 我正在研究如何将自定义字体添加到我的Rails应用程序中,例如,通过在Assets文件夹中添加一个fonts文件夹-我无法找到有关如何执行此操作的“官方” Rails方法。 是的,关于此事,这里有很多问题/答案,似乎都是他们自己的骇客。 但是,难道不应该在Rails著名的“约定之上的配置”下采用这种惯例吗? 或者,如果我错过了-关于如何在Rails应用程序中组织字体的文档参考在哪里? 回答1 是的,给出的链接可以很好地解释它,但是,如果您需要其他详细的解释,那么这里是 首先,要在您的应用程序中使用自定义字体,您需要下载字体文件,您可以尝试https://www.1001freefonts.com/并查找字体很少有最受欢迎的字体文件格式主要是.otf(开放类型格式).ttf(真实类型格式).woff(Web开放字体格式) 您可以将下载的字体移动到app / assets / fonts /下的app文件夹中。 下载文件后,您需要像这样在“ css”中“声明”将使用的字体@font-face { font-family: "Kaushan Script Regular"; src: url(/assets/KaushanScript-Regular.otf) format("truetype"); } 最后,您可以在任何需要的地方使用刚刚声明的字体系列#e
  • Heroku字体资产不起作用(Heroku font assets not working)
    问题 在app/assets/fonts放置app/assets/fonts 添加 Add the fonts path config.assets.paths << Rails.root.join('app', 'assets', 'fonts') Precompile additional assets config.assets.precompile += %w( .svg .eot .woff .ttf ) 在production.rb和development.rb中 在CSS中链接的字体,例如: @font-face { font-family: 'Icomoon'; src:url('/assets/icomoon.eot'); src:url('/assets/icomoon.eot?#iefix') format('embedded-opentype'), url('/assets/icomoon.svg#icomoon') format('svg'), url('/assets/icomoon.woff') format('woff'), url('/assets/icomoon.ttf') format('truetype'); font-weight: normal; font-style: normal; } 似乎在开发中起作用。
  • Instant App Fails when verifying
    whenever I click the link and verify button in complete the association part, it gives : Adding asset statements failed Failed to link strings to AndroidManifest file Failed to add autoVerify to intent-filter elements Success!... Why these 3 of them failed? And is it an obstacle for uploading apk to play store? Thanks