由于在iOS13引入了UniversalLink导致微信好友、朋友圈分享时显示未验证引用。而且该问题会反反复复出现,很是头疼。最终得以解决,现将过程和思路以及部分参考代码列出如下,供参考对照。
第一步,在服务器配置UniversalLink文件以及设置相应地址:
具体可参考 微信iOS接入指南 和 苹果官方文档 Support Universal Links ,接入成功后,在手机浏览器访问配置的UniversalLink地址出现如下界面即表示成功:
服务器端根目录配置的文件信息(appID 值为团队编号.BundleIdentifier):
第二步,集成微信SDK 和QQSDK(如果app支持微信和QQ都需要配置,本文以微信SDK配置说明为主)
下文中之前使用的友盟SDK集成微信精简不能分享,由于该SDK不支持 UniversalLink,详见:友盟分享微信iOS精简版 说明
第三步,配置信息
集成SDK及配置SSO白名单,可以参考:iOS接入说明
项目中也需要配置Associated Domains(一、在对应证书中开启 Associated Domains,二、在项目配置之前设置好的 UniversalLink,只有地址),如下图:
第四步,注册信息并验证接入
在app didFinishLaunchingWithOptions 中注册,OC和Swift 版参考代码如下:
[WXApi startLogByLevel:WXLogLevelDetail logBlock:^(NSString * _Nonnull log) {
NSLog(@"WeChatSDK: %@",log);
}];
[WXApi registerApp:WXAppInfo[kWXAppInfoAppIdKeyName] universalLink:@"https://app.shlingzhang.com/app/"];
NSLog(@"WXApi-Version:%@",[WXApi getApiVersion]);
//生产环境需要注释如下代码,仅测试使用
[WXApi checkUniversalLinkReady:^(WXULCheckStep step, WXCheckULStepResult * _Nonnull result) {
NSLog(@"checkUniversalLinkReady:%@, %u, %@, %@", @(step), result.success, result.errorInfo, result.suggestion);
}];
//微信验证注册
let _result = WXApi.registerApp(K_APP_WECHART_APP_ID,universalLi