当我碰到这个不寻常的问题时,我刚刚开始在我的应用程序中实现对App Links的支持。
按照Android Studio应用链接工具中的步骤,我很快就能够进行必要的更改。但是,当我开始验证数字资产链接文件与我的网站的关联时,我收到了错误。
最初,我认为访问该链接可能会有一些错误。我尝试使用多个浏览器访问该链接,并且没有错误。
当我四处寻找遇到类似问题的人时,我遇到了this post。我试图关联的网站也使用了LetsEncrypt生成的SSL证书。所以,我尝试了另一个使用LetsEncrypt SSL的网站 - 结果相同。然后我使用了一个使用RapidSSL生成的SSL和宾果游戏的网站 - 它有效!
我不确定App Links团队是否注意到了这一点。但有人可以帮忙解决这个问题吗?
谢谢!
答案 0 :(得分:1)
我有同样的问题 SSL证书未经过验证。 这是因为您在那里托管的服务器,您必须验证 SSL证书
因此文件生成名称 assertlinks.json
此文件必须通过在此json文件中创建文件夹.well-known /来放置在您的服务器域上
<强> https://sub.subdomain.example.com/.well-known/assetlinks.json 强>
在mainfiest我有这个代码
<intent-filter>
<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.example.com"
android:path="/aboutus"
android:scheme="http" />
</intent-filter>
按照以下步骤使其工作我的深层链接正常工作 https://developer.android.com/studio/write/app-link-indexing.html
答案 1 :(得分:1)
已经有些老了,但希望仍然有意义。今天我遇到了同一问题,并发现问题出在.well-known文件夹。根据您设置“加密我们的SSL”证书的方式,很可能您的服务器上现在有了一个别名,该别名指向服务器上的/var/www/html/.well-known文件夹。这也是您必须放置assetlinks.json文件的地方。复制文件在那里解决了我的问题。
但是请注意,如果您的服务器上有多个域,并且需要将应用程序链接到其他域,则很可能会带来很多问题。我不知道您是否可以在此设置中使用不同的assetlinks.json文件。
答案 2 :(得分:0)
比如说,如果您在生产环境中使用 nginx 和 gunicorn 运行 Flask 服务器,那么这个 assetlinks.json 文件将不会由您的烧瓶应用程序或 gunicorn 软件。此文件必须由 nginx 提供服务。
为此,您必须在 nginx 配置文件中进行以下更改:
location /.well-known {
default_type "text/plain";
alias /home/user/project/app/.well-known;
}
您将在此处进行更改:
server {
server_name www.example.com example.com;
location /static {
alias /home/user/project/app/static;
}
#################EDITED PORTION START################
location /.well-known {
default_type "text/plain";
alias /home/user/project/app/.well-known;
}
#################EDITED PORTION END################
location / {
proxy_pass http://localhost:8000;
include /etc/nginx/proxy_params;
proxy_redirect off;
}
listen 443 ssl; # managed by Certbot
ssl_certificate
/etc/letsencrypt/live/example.com/fullchain.pem; # managed by Certbot
ssl_certificate_key
/etc/letsencrypt/live/example.com.bd/privkey.pem; # managed by Certbot
include /etc/letsencrypt/options-ssl-nginx.conf; # managed by Certbot
ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem; # managed by Certbot
}
答案 3 :(得分:-1)
当我使用Android Studio 2.3时,我也遇到了这个问题。
我们加密证书之一根CA是&#34; DST根CA X3&#34;,因此您可以检查您的加密根CA是否为。
当我使用wireshark捕获ssl数据包时,它显示&#34;证书未知&#34;。所以我认为Android Stuido 2.3不包括&#34; DST Root CA X3&#34;在它根CA列表。
因此,您最好尝试其他根CA发布的其他证书。