【设备类型及SDK版本号】
ios; SDK版本号:1.8.6.1
【用户表现】
app每次分享都出现【正在连接】的二跳情况 或 授权登录页面出现二次确认弹窗。
【符合预期的表现】
用户首次使用SDK内功能时可能会出现上述提示,但每个用户只有首次使用的时候会出现,后续不会再提示。
【错误原因】
开发者在registerApp传入的Universal links不生效,每次分享鉴权通过Universal links回跳app失败,导致微信降级scheme返回app,自动重新发起兜底请求。目前兜底请求可以通过,但微信后续也会逐步拦截。
【原因分析】
Universal links失效,可能原因:
1)工程配置associated domain未打开或未添加Universal links域名
2)配置文件未上线或未按苹果要求放在服务器指定的路径下(域名根目录)
3)配置文件的Universal links的path末尾没有加通配符*
4)配置文件的appID(teamID+bundleID)与实际代码包不匹配
【解决方案】
1. 按微信以及苹果的官方接入文档检查Universal Links配置是否符合要求
2. 确认配置正确后,按微信接入文档内的【SDK接入成功验证指引】逐步验证
微信文档:https://developers.weixin.qq.com/doc/oplatform/Mobile_App/Access_Guide/iOS.html
苹果文档:https://developer.apple.com/documentation/uikit/inter-process_communication/allowing_apps_and_websites_to_link_to_your_content
说一下这个坑:
举个例子:
你的域名是:https://xxx.com 你要匹配的是:https://xxx.com/app/link/
1、微信开发者 Universal Link 填写:https://xxx.com/app/link/
2、xcode 的 Associated Domains 添加 applinks:xxx.com
3、在你关联的域根目录下 创建 apple-app-site-association 文件,文件格式参照https://developer.apple.com/documentation/safariservices/supporting_associated_domains 。这里我们使用:{"applinks":{"apps":[],"details":[{"appID":"teamID.bundleID","paths":["/app/link/*"]}]}}
4、代码中注入即可
应用配置了Universal links 从备忘录和safari 浏览器都是可以跳转到APP,但是每次启动APP的时候都会跳转到微信,显示正在连接,然后再跳转回APP。每次启动都会重复上面操作,WeChatSDK的log全部检测通过了,不知道哪里有问题?帮忙看看


微信检测函数运行 全部通过,app 分享时还是弹出 ”未验证应用“。。 请求帮助,Universal Link 肯定配置对的。
请求协助。 请求帮助,着急
@"===微信版本===%@",[WXApi getApiVersion]
微信版本===1.8.7.1
实际的各型号的手机现象不同,有两个代表性的机型为:主要是分享功能:
iPhoneXs,iOS13.4.1,正常跳转,不会出现第二次跳转
iPhone7,iOS13.3.1,出现第二次跳转来到了APPdelegate方法里面的openURL,打印出来是url是这样wxb7bxxxxxxxxxxxxxxxxxxxxxxx://resendContextReqByScheme?wechat_auth_context_id=e0exxxxxxxxxxxxxxxxx
注册的方法为 [WXApi registerApp: wxIDstring universalLink: @"https://www.xxxxxxxxxxxxxxx.com/apple-app-site-association/"];
配置universal link的文件为以下方式:
{
"applinks": {
"apps": [],
"details": [
{
"appID": "Z959Kxxxxxxxx.com.xxxxxx.xxxxxxApp",
"paths": [ "*" ]
},
{
"appID": "Z959Kxxxxxxxx.com.xxxxxx.xxxxxxxApp",
"paths": [ "*" ]
}
]
}
}
请问有人碰到类似的案例嘛,怎么解决
我出现了ios13分享时总是app-微信验证页-app,没有跳转微信好友列表界面,确认Universal Links配置正常,各方面都正常,搜索试错一天后发现,appdelegate中application(_ application: UIApplication, continue userActivity: NSUserActivity, restorationHandler: @escaping ([Any]?) -> Void) -> Bool方法未能正确实现,实现方法为
func application(_ application: UIApplication, continue userActivity: NSUserActivity, restorationHandler: @escaping ([Any]?) -> Void) -> Bool {
return WXApi.handleOpenUniversalLink(userActivity, delegate: self)
}
加上这一段之后,一切正常,ok!
你好 我调用系统的openURL 可以正确跳转到Safari。用微信打开Universal links也能正确跳转到我的app。但是每次分享的时候还是需要连接
微信分享总是二跳,自测在第5步说是Universal links不生效, https://xxxx/apple-app-site-association 可正常访问。
{ "applinks": {
"apps": [],
"details": [
{
"appID": "xxxxxxxx.com.xxxxxx.xxxxxx",
"paths": [ "*" ]
}
]
}
}
分享一个我遇到的二跳问题的原因,和评论里的都不一样,是域名的问题,目前已解决。
起初遇到二跳问题也是按照微信文档和各种评论排查了好几遍,都不行。后来换了一个域名,xcode里applinks的配置换了个新的域名,然后在新域名服务器端根目录或者.well-know目录下上传apple-app-site-association文件。配置完这两步后重装app,然后在浏览器或者备忘录里通过universal Links能拉取app,就说明ul配置成功了,微信也能成功验证app的ul,就不会有二跳的问题。后端人员给我的回复是原先使用的那个域名无法拉起app是因为协议转发的问题导致的,还要做其他的配置才行,后来干脆直接另用了一个新域名。
备注:之前使用的旧的域名,配置的apple-app-site-association文件,在浏览器打开https://xxx.com.cn/apple-app-site-association/是可以成功访问并下载的,所以当时,一直没把问题锁定到域名相关配置上,那我们怎么检测可能是服务器端的配置出了问题呢?看下面👇
可以通过这个链接:https://branch.io/resources/aasa-validator/#resultsbox 检测配置的universal Links是否奏效,这个链接可以检测使用的站点域名是否有效,是否支持https,请求是否成功,且json文件是否配置成功。打开这个网址不需要任何注册登录操作,填写域名、teamId,bundle identifier,点击test就可以得到检测结果:
成功的话是这样子:
失败的话是这样子:
请问一下,apple-app-site-association 是否一定要放在https://xxx.com 这里的根目录里面? 我把apple-app-site-association 放在了https://xxx.com/applinks/的目录下,然后apple-app-site-association 的details 的 paths 是 ["/applinks/*"],请问这样配置是否有问题?
分享检测所有的都正常就是,分享出去提示未验证应用,真的无语了,不造啥问题
为什么自测函数都通过了,分享出去还是未审核应用呢