关于Universal links的概念什么的,不用介绍了,网上一大堆的概念介绍,本文着重记录下Universal links的配置及微信sdk中Universal links的使用。
Universal links的配置
-
登录开发者网站,找到需要配置的bundle id,如下图:
1590724008062.jpg
点击进入,配置该bundle id的Capabilities,如下图:
1590724259636.jpg
本页面需要的操作:
- 记录Team ID
- 将capabilities中的Associated Domains勾选,然后保存操作。重新下载对应的profile文件,并安装。
- 打开xcode,找到Signing&Capabilities,找到Associated Domains,如果找不到Associated Domains,点击左上角的Capbility添加即可。如下图:
1590724761757.jpg
在Associated Domains中添加applinks:域名,示例如下:
applinks:www.test.com
关于此处的域名,稍后会做讲解。
完成配置后,xcode会自动生成.entitlements文件。
3.配置apple-app-site-association。创建一个纯文本文件,不带后缀名,命名为,内容如下:
{
"applinks": {
"apps": [],
"details": [
{
"appID": "TeamID.Bundle Id",
"paths": ["*"]
}
]
}
}
注意:此处的appID的构成,TeamID就是上面记录的TeamID。
文件创建完成后,将之上传至HTTPS服务器根目录或者.well-known这个子目录下。
此处要确保:
- 使用https://domain.com/apple-app-site-association或者https://domain.com/.well-known/apple-app-site-association能够访问到(能够下载或者返回文件内容即可)。这里的域名,就是2中配置xcode的Associated Domains时候提到的域名。
- 也可以使用苹果的验证网站来验证文件是否能够被访问到。若应用未上线,可能出现如下结果:
苹果验证网站的验证结果 - 出现该结果,说明配置文件apple-app-site-association正确
- 出现404错误,则说明apple-app-site-association文件未上传成功或者使用上面的域名不能访问到。
至此,Universal links配置完毕。
微信sdk中Universal links的使用
写作本文时,用到的微信的openSDK版本是1.8.7.1,该版本强制使用Universal link。参照微信sdk介入指引即可完成介入。但是如果完全按照该指引操作,可能会出现分享的时候,进行二次跳转的异常,具体表现就是:拉起微信后进行授权,然后立刻返回App,然后再次调起微信,这是由于通用链接授权失败,第二次降级为URLScheme方式启动微信。
如果保证了Universal links的配置正确,并且严格按照微信的接入文档执行操作,为什么通用链接授权还会失败呢?
在微信的接入文档中,第二步操作如下图:
如红字部分所示,“建议Universal links配置path……”。当时,操作到这里的时候,又返回去修改apple-app-site-association文件,配置了path,但是在微信后台中配置的Universal links并没有配置path,App中调用微信openSDK的
+(BOOL)registerApp:(NSString *)appid universalLink:(NSString *)universalLink
方法的时候也没有带path,这就导致了微信sdk中Universal links校验不通过。解决方式:
在微信公众平台注册的通用链接要带路径,App中调用微信openSDK的
+(BOOL)registerApp:(NSString *)appid universalLink:(NSString *)universalLink
方法的通用链接参数也一定要带路径,保持一致,单纯的域名就会导致二次降级启动。正确配置后,从微信返回的通用链接形式是:
https://域名/路径/微信平台的AppID
网友评论