iOS之适配苹果Universal Links 和升级友盟的QQ和微信分享艰难之路

b6xg.gif
  • 安逸的日子总是那么短暂,刚上完线,唏嘘人生是那么短暂而又漫长,刚准备进入安逸圈,结果晴天霹雳
    WechatIMG120.png

    这特么是啥 ,我没动啥代码哇,瞬间感觉蛋蛋有微微的疼痛,经过测试只有新系统(iOS13.5)的微信才会出现这个
    YmDA.jpeg

    这肯定是友盟整什么幺蛾子了,打开文档一看
    WechatIMG121.png

    瞬间明白了什么 ,我现在用的就是精简版 去看下pod 果不其然
    WechatIMG122.png

    这时候嘴角扬起一丝丝微笑,这不是升级就完事了,事情没你想的那么简单
    q5p5.jpeg

    pod完事了,运行结果掉不起微信了,没什么反应,控制台也不报错
    5xGg.jpeg

    行吧 不慌 再看看文档

集成最新的微信和QQ的完整SDK,需要设置合法的Universal Links 这一句 ,然后思路就来了 面向百度开发

WechatIMG123.png

这原来是苹果整的幺蛾子,打开第一个跟着做就行,一定要服务端配合
下面吗给出知乎的配置格式(https://oia.zhihu.com/apple-app-site-association),我是参考这个格式,其他的也行

注意:如果你要分享到QQ,下面的格式一定要是/qq_conn/QQ互联给的AppId/

QQ互联文档有说明,不然会一直效验Universal Links失败,然后你分享到QQ提示未验证应用类的提示


9D49350E4EA7312A9BFEDFBDEEDA63F3.jpg

9EA067BC-BA23-40C3-8F85-527BB91DDAA5.png

A1095A83-8FB0-4502-804B-E808DD7D37E7.png

上面的图片里面需要点击效验,验证通过才能成功分享到QQ,提示报错,是因为你的path路径有问题,一定要按照QQ给的路径去配(/qq_conn/QQ互联给的AppId/)

{
  "applinks": {
    "apps": [],
    "details": {
      "AppId":"苹果证书的TeamId.你的Bundle.Identifier"{
        "paths": [
          "/app/***/*",
          "/qq_conn/QQ互联给的AppId/*"
        ]
      },
  "webcredentials": {
    "apps": [
      "苹果证书的TeamId.你的Bundle.Identifier"
    ]
  },
  "activitycontinuation": {
    "apps": [
       "苹果证书的TeamId.你的Bundle.Identifier"
    ]
  }
}
  • 配置成功验证在Safari浏览器输入(https://你的域名/你的路径/)应该是这样的,就表示你配置成功*
    1289056-eea1f1910ef67df2.jpg

    下面你去运行还是一样的,下面分享集成友盟的坑
6M0yr.gif
  • 运行应该控制台log下面的错误
 -canOpenURL: failed for URL: "weixinULAPI://" - error: "This app is not allowed to query for scheme weixinulapi"

干就完事了 打开info.plist 添加weixinULAPI


WechatIMG125.png

重要的事情说三遍

重要的事情说三遍

重要的事情说三遍

  • 红色箭头的顺序不能写反了我发现在先后顺序也会掉不起来


    WechatIMG126.png
  • 看到这里你基本上可以成功掉起微信,很可能会在微信成功几秒游,闪一下,那么不要慌,加上这段代码,你就可以了

此处建议卸载APP,然后加上下面代码后在重新运行

-(BOOL) application:(UIApplication *)application continueUserActivity:(NSUserActivity *)userActivity restorationHandler:(void (^)(NSArray> * _Nullable))restorationHandler {
    if (![[UMSocialManager defaultManager] handleUniversalLink:userActivity options:nil]) {
           // 其他SDK的回调
       }
    return true;
}
JBmqz.jpeg

基本上注意以上的,你就可以成功掉起微信分享

But

短时间目测无法去掉未验证应用的帽子,微信开放平台有说明:

420DBFE1ACEC1C86BC8A9BA4F33C04EC.jpg
7506136E4A69C0D9A42769E4433BC195.jpg

后续检测到你的app有使用SDK的记录,会去掉这个帽子,我到现在也没去掉,可能是我们没发版

q3Blp.jpeg

2020年06月9日上线,大多数用户更新后,去掉了帽子 哈哈


WeChat44e63d2cd7ba1fb14c916852452a4cf6.png
b6xg.gif

你可能感兴趣的:(iOS之适配苹果Universal Links 和升级友盟的QQ和微信分享艰难之路)