iOS|iOS 微信SDK登录/分享问题 “未验证应用”和“二次拉起”.md

  • openSDK接入指引:https://developers.weixin.qq.com/doc/oplatform/Mobile_App/Access_Guide/iOS.html
微信分享universal link. 导致“未验证应用”和“二次拉起”
  • 使用SDK 自检函数排查接入问题
    SDK1.8.7版本,WXApi新增了自检函数checkUniversalLinkReady:,帮助开发者排查SDK接入过程中遇到的问题。
    如果出现了问题, 开发者首先通过该函数检查问题.
[WXApi startLogByLevel:WXLogLevelDetail logBlock:^(NSString * _Nonnull log) { NSLog(@"WeChatSDK: %@", log); }]; [WXApi registerApp:@"wxAppID" universalLink:@"wxUniversalLink"]; [WXApi checkUniversalLinkReady:^(WXULCheckStep step, WXCheckULStepResult * _Nonnull result) { NSLog(@"WeChatSDK: %@, %u, %@, %@", @(step), result.success, result.errorInfo, result.suggestion); }];

如:
2021-03-04 16:02:51.114537+0800 [1831:776302] WeChatSDK: 5, 0, Universal Link check failed. The application is launched by WeChat via scheme, Common problems self-check guide: [微信开放平台App iOS端接入新版本SDK 常见问题自查指引] https://developers.weixin.qq.com/community/develop/doc/000ce0403bc9d0ea1a0a67f415b409

扒拉微信开发平台QA, 可以确定就是Universal link问题.
1).自行用safari检查universal links配置是否成功。
Safari输入Universal Links(包括完整路径)+随机字符串(apple-app-site-association文件中path下的*号),下拉页面看是否有拉起app的入口提示
比如配置的Universal Links: https://help.wechat.com/app/
输入safari的测试Universal Links: https://help.wechat.com/app/abc
配置项
举个例子:
Universal Links域名为 https://help.wechat.com
  • 配置一:在自己的网站https://help.wechat.com根目录下配置以下json文件
    配置文件apple-app-site-association文件json内容:
    {
    "appID": "8P7343TG54.com.tencent.xin.SDKSample",
    "paths": ["/sdksample/*"]
    }
    path中必须配置*
  • 配置一:在"微信开放平台登记"以及在"openSDK"传入的Universal Links正确是:
    https://help.wechat.com/sdksample/
  • 配置二:"Xcode domains"中不包含 path, 可配置多个domain域名, 不过每个域名的根目录都应有apple-app-site-association文件
    applinks:help.wechat.com
    applinks:ive.wechat.com
apple-app-site-association路径.
【iOS|iOS 微信SDK登录/分享问题 “未验证应用”和“二次拉起”.md】两个目录下: 域名根目录域名根目录/.well-known/
https://domain.com/.well-known/apple-app-site-association
https://domain.com/apple-app-site-association
在App第一次运行时, 若App支持Associated Domains, 我们的iOS App会自动去GET定义的Domain下的apple-app-site-association文件.
  • 请求顺序
    先请求域名根目录/.well-known/ https://domain.com/.well-known/apple-app-site-association,
    如果失败, 会再去请求域名根目录 https://domain.com/apple-app-site-association
扩展: 备忘录和safari中都可以打开app,怎么分享到其他app里面就不行了?
未跨域导致的.
如:分享到微信的链接是·https://domain.com/share.html,然后该网页中的“在app内打开”按钮配置的通用链接为https://domain.com/index.html
跨域的意思是说,通用链接 和 调用通用链接的网页不要使用同一域名。
即如果通用链接域名为domain.com,则通用链接所处的网页域名就不能是domain.com。
只有跨域后, universal link才生效.

    推荐阅读