首先确认,这个问题是因为
Associated Domains
。
确认一下,项目当中是否用到了 Associated Domains 的内容,最近微信新的SDK要求配置一个universal link,就用到了这个东西。
如果没用到这些内容:
1、删除项目中的Associated Domains 内容
2、勾选掉证书中的相关选项
3、清理Xcode 缓存,重新生成描述文件,重新打包上传
如果用到了这些东西:
1、在Targets -> Signing & Capabilities 中添加 Associated Domains
2、配置项目中的 Domains
注意如果微信SDK中配置了universal Link,大家应该不陌生。
这里需要注意一点:以 applinks: 开头
如果你的universal link 是 https://www.baidu.com/,在这里你就应该是 applinks:www.baidu.com
3、服务器配置apple-app-site-association文件
需要在上面域名对应的服务器上放apple-app-site-association文件【该文件为json文件,无后缀】。
apple-app-site-association文件配置如下:
"applinks": {
"apps": [],
"details": [
{
"appID": "G56NU654TV.io.dcloud.HBuilder",
"paths": [ "/ulink/*"]
}
]
}
}
//
#apps 必须对应一个空的数组
#appID 由前缀和ID两部分组成,可以登录苹果开发者网站,在“Certificates, Identifiers & Profiles”页面选择“Identifiers”中选择对应的App ID查看
#paths 对应域名中的path,用于过滤可以跳转到App的链接,支持通配符*,?以及NOT进行匹配,匹配的优先级是从左至右依次降低。若无path,则只有 *。
把配置好的apple-app-site-association文件上传到你自己的服务器,确保通过https://demo.dcloud.net.cn/.well-known/apple-app-site-association可访问。
其中demo.dcloud.net.cn为上面配置的域名
应用安装后会通过访问上面的url向系统注册应用的通用链接。
注意事项
apple-app-site-association文件不需要.json后缀
对apple-app-site-association文件的请求仅在App第一次启动时进行,如果此时网络连接出了问题apple会缓存请求,等有网的时候再去请求,如果没有请求此文件通用连接会失效
iOS 9.2开始,在相同的domain内Universal Links不生效,必须要跨域才生效