10个国内建筑网站,副国级人员名单,如何在本地运行WordPress,建设电影网站论文1. 背景说明
1.1 Universal Links 是什么 Support Universal Links 里面有说到 Universal Links 是什么、注意点、以及如何配置的。简单来说就是 当您支持通用链接时#xff0c;iOS 用户可以点击指向您网站的链接#xff0c;并无缝重定向到您安装的应用程序 大白话就是说iOS 用户可以点击指向您网站的链接并无缝重定向到您安装的应用程序 大白话就是说用户通过点击某个链接可以直接唤起对应的app。提供这样功能的目的是为了吸引网络用户俗称引流
1.2 Universal Links 如何配置 简单的来说配置Universal Links需要涉及到两方面域名服务器和app
① 域名服务器上要配置apple-app-site-association文件 也被称为AASA文件 创建apple-app-site-association文件后将其上传到 HTTPS Web 服务器的根目录或子目录.well-known。该文件需要可通过 HTTPS 访问无需任何重定向地址为https:///apple-app-site-association或https:///.well-known/apple-app-site-association。接下来您需要处理应用程序中的通用链接 即配置成以后有3个链接要访问成功才可以
https://你的域名.com/apple-app-site-association
https://你的域名.com/.well-known/apple-app-site-association
https://app-site-association.cdn-apple.com/a/v1/你的域名.com最后一个链接是苹果CDN链接可以理解为只要这个地址像下图一样返回正常就说明我们配置的AASA文件没有问题
② app上要在Xcode的Associated Domains里面去配置applinks
两方面都要配置好才能正常使用Universal Links 唤起app。配置OK后可以在钉钉、微信、safari浏览器、扫描器等里面直接通过配置的域名唤起app。
2. 问题出现与调试
昨天17点的时候发现Universal Links 无法正常唤起app了。打开那3个链接进行调试发现只有前个是可以正常访问的。
https://你的域名.com/apple-app-site-association
https://你的域名.com/.well-known/apple-app-site-association
https://app-site-association.cdn-apple.com/a/v1/你的域名.com第三个显示Not Found 在shell里面运行
curl -v https://app-site-association.cdn-apple.com/a/v1/你的域名.com可以看到该请求的详细信息 Apple-Failure-Details: {status:405 Not Allowed}Apple-Failure-Reason: SWCERR00101 Bad HTTP Response: 405 Method Not Allowed3. 修复总结 这个Universal Links 之前一直能正常访问ios app发版也没有动过相关配置。为什么就失效了呢 前2个链接是可以正常访问的即apple-app-site-association的配置是ok的。问题出在最后一个连接上Not Allowed 可能是我们的服务器不允许app-site-association.cdn-apple.com访问 联想到前几天服务器受到了攻击所以运维调整了安全策略有时候在我们的域名下可以安全提示。和运维确认以后得知运维禁止了所有的国外ip访问。 但是在运维放开以后访问
https://app-site-association.cdn-apple.com/a/v1/你的域名.com依然是 Not Found似乎没有任何变动。 正好那个时间还有几分钟就下班了还要取写每日云效和日报就先没管这个了。今天上班以后发现链接可以访问了。 回想可能是缓存问题之前配置AASA文件的时候就了解到AASA文件文件是有缓存的或者说是apple CDN的缓存。修改AASA文件以后从https://app-site-association.cdn-apple.com/a/v1/ 访问可能不会马上更新。这个缓存具体时间不确定可能是几小时或几天不等。 也就是说即使我们修改了自己服务器上的apple-app-site-association文件搭配app测试的时候可能也不会马上达到我们想要的效果。 比如一开始我们在AASA文件里面是这样配置的 paths: [*]这代表当前域名下的所有url都会唤起我们的app 但是如果修改一下 paths: [NOT *-wx-*,*]这表示我们想当前域名下含-wx-的url不会唤起app。但是当我们修改了AASA文件并更新到服务器以后同时确保服务器文件已更新。 可能依然会发现测试效果并非我们所预测的那样包含-wx-的url依然会唤起app此时查看
https://app-site-association.cdn-apple.com/a/v1/你的域名.com 会发现依然是 paths: [*]同文件内容的缓存一样我感觉我们在放开国外ip访问以后https://app-site-association.cdn-apple.com/a/v1/ 或 apple CDN 并没有马上访问更新。所以当时没有生效但是第二天缓存更新就生效了